On Error GoTo

Katılım
30 Kasım 2004
Mesajlar
180
Excel Vers. ve Dili
2003 ingilizce
Merhaba ben macro hata verdiğinde
HATA İSİMLİ MACROYA GİTMESİNİ İSTİYORUM AMA BECERMEDİM.
ŞU ŞEKİLDE YAZDIM:
On Error GoTo HATA
olarak kullanamadım yarddımlarınızı rica ederim.

On Error Resume Next komutu işimi görmüyor teşekkürler
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,650
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub hatadeneme()
On Error GoTo hata
MsgBox 3 / 10
MsgBox 3 / 0

Exit Sub
hata:
Call hata(Err.Description)
End Sub
Sub hata(giris)
MsgBox "Hata Oluştu Hata Kodu: " & giris
End Sub
 
Katılım
30 Kasım 2004
Mesajlar
180
Excel Vers. ve Dili
2003 ingilizce
Olmadi Error Vermesede Eklİ Msg Boxlari Verİyor Ve Macrolar ÇaliŞmaya Kaldigi Yerden Devam Edİyor.
İstedİĞİm Macro Hata VerdİĞİ An Hata Macrosu Devreye Gİrmesİ Ve Ana Macrosun O An End Sub Olmasi
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,650
Excel Vers. ve Dili
Pro Plus 2021
Exit Sub
hata:


Yukarıdaki şekilde hata kısmından önce exit sub verdiniz mi?
 
Katılım
30 Kasım 2004
Mesajlar
180
Excel Vers. ve Dili
2003 ingilizce
evet verdim.
benim macro share macro aynı anda kayıt yapıldıgı zaman excelin standart hatası varya başka bir user saveliyor diye... işte ben bu durumunda yani macromdaki save komutuna geldiği zaman başka bir user saveliyorsa excelin bu klasik mesajın değil bu hata macrosu na yazdıgımız mesajın gelmesini ve
ana macronun end sub olmasını istiyorum
 
Katılım
30 Kasım 2004
Mesajlar
180
Excel Vers. ve Dili
2003 ingilizce
KULLANDIĞIM KODLARI YAZDIM BAKARSAN SEVİNİRİM.

amacım macro çalışırken;
ActiveWorkbook.Save geldiğinde eger başka bir kullanıcı save liyorsa excelin klasik hata mesajını değil.
bizim yazdığımız hata mesajının gelmesi ve ana bu macronun end sub olması

Private Sub CommandButton1_Click()

For No = 2 To 4
sonsat = WorksheetFunction.CountA(ActiveSheet.Range("a1:a65536")) + 1
Range("L" & sonsat).Value = Application.UserName & "-" & Date
If Controls("TextBox" & No).Value = Empty Then

MsgBox ("Kayıt işlemi için gerekli tüm bölümlere veri girmelisiniz." _
& Chr(10) & "Lütfen boş bıraktığınız bölümleri doldurunuz."), vbExclamation, "Dikkat !"
Controls("TextBox" & No).SetFocus
Exit Sub
End If
Next No

'HATA BAŞLANGICI'

On Error GoTo hata
MsgBox 0 / 0

Exit Sub
hata:
Call hata(Err.Description)
End Sub
Sub hata(giris)
MsgBox "başka bir user kullanıyor"

'HATA KODU SONU'

ActiveWorkbook.Save
Sheets("Sayfa1").Select
Range("A2").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
If Range("A2").Value = Empty Then
Range("A2").Value = 1
Range("A2").Select
Else
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value + 1
End If
ActiveCell.Offset(0, 1) = ListBox3.TEXT
ActiveCell.Offset(0, 2) = TextBox2.TEXT
ActiveCell.Offset(0, 3) = TextBox3.TEXT
ActiveCell.Offset(0, 4) = TextBox4.TEXT
ActiveCell.Offset(0, 5) = ListBox2.TEXT
ActiveCell.Offset(0, 6) = TextBox6.TEXT
ActiveCell.Offset(0, 7) = TextBox7.TEXT
ActiveCell.Offset(0, 8) = TextBox8.TEXT
ActiveCell.Offset(0, 9) = "AÇIK"
ActiveCell.Offset(0, 11) = Now
ActiveCell.Offset(0, 13) = ListBox4.TEXT
ActiveCell.Offset(0, 14) = ListBox5.TEXT
ActiveCell.Offset(0, 15) = ListBox7.TEXT
Range("z1") = ListBox2
Range("A2").Select
ActiveWorkbook.Save
'DİĞER KİTABA GEÇ'
Set HEDEF = Workbooks.Open("X:\ARASTIRMA\system\güvenlik\güvenlik.xls")
Application.WindowState = xlMinimized
HEDEF.Sheets("SHEET1").Range("Y1") = "TAMAM"
Range("A2").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
If Range("A2").Value = Empty Then
Range("A2").Value = 1
Range("A2").Select
Else
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value + 1
End If
ActiveCell.Offset(0, 1) = ListBox3.TEXT
ActiveCell.Offset(0, 2) = TextBox2.TEXT
ActiveCell.Offset(0, 3) = TextBox3.TEXT
ActiveCell.Offset(0, 4) = TextBox4.TEXT
ActiveCell.Offset(0, 5) = ListBox2.TEXT
ActiveCell.Offset(0, 6) = TextBox6.TEXT
ActiveCell.Offset(0, 7) = TextBox7.TEXT
ActiveCell.Offset(0, 8) = TextBox8.TEXT
ActiveCell.Offset(0, 9) = "AÇIK"
ActiveCell.Offset(0, 11) = Now
ActiveCell.Offset(0, 13) = ListBox4.TEXT
ActiveCell.Offset(0, 14) = ListBox5.TEXT
ActiveCell.Offset(0, 15) = ListBox7.TEXT
ActiveWindow.Close SaveChanges:=True
Application.WindowState = xlMaximized
Set HEDEF = Nothing
'DİĞER KİTABA GEÇ'
Call Formu_Temizle
Selection.AutoFilter Field:=2
Selection.AutoFilter Field:=3
Selection.AutoFilter Field:=4
Selection.AutoFilter Field:=5
Selection.AutoFilter Field:=6
Selection.AutoFilter Field:=7
Selection.AutoFilter Field:=8
Selection.AutoFilter Field:=8
Selection.AutoFilter Field:=9
Selection.AutoFilter Field:=10
Selection.AutoFilter Field:=11
Selection.AutoFilter Field:=12
Selection.AutoFilter Field:=13
Selection.AutoFilter Field:=14
Selection.AutoFilter Field:=15
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Selection.AutoFilter Field:=10
Selection.AutoFilter Field:=6
MailGönder
End Sub
 
Katılım
30 Kasım 2004
Mesajlar
180
Excel Vers. ve Dili
2003 ingilizce
Sanirim Buldum Sonucu Test Edİp Yazacagim
 
Üst