Error veren kod satırının numarası

Katılım
16 Ağustos 2004
Mesajlar
137
Excel Vers. ve Dili
Office 2010 En 64 Bit
Merhaba,

Yazılan kodun çalışması sırasında herhangi bir sebepten ötürü hata döndüğünde 'On Error' komutunun altına yazılacak bir komut ile hatanın oluştuğu satırın numarasını alabilirmiyiz?

Yani:

Kod:
Sub hesapla()
a = 0
b = 0
c = a / b
msgbox c
End Sub
şeklindeki bir kodu çalıştırdığımızda kod
'c = a / b'
satırına geldiğinde sıfıra bölünme hatası verecek.
İşte bu noktada ben 'On Error' komutunun altına yazılabilecek herhangi bir komut ile hatanın oluştuğu kod satırının numarasını yani '4' sonucunu mesaj olarak döndürebilirmiyim?
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Burada zaten hata verecek satır sadece c=a/b satırıdır. Bu durumda aşağıdaki gibi bir kod kullanabilirsiniz.

[vb:1:34755cbdee]Sub hesapla()
on error goto 10
a = 0
b = 0
c = a / b
msgbox c
exit sub
10 msgbox "5 NOLU SATIRDA HATA OLUŞMUŞTUR"
End Sub
[/vb:1:34755cbdee]
 
Katılım
16 Ağustos 2004
Mesajlar
137
Excel Vers. ve Dili
Office 2010 En 64 Bit
Sayın Leventm,

sanırım ben sorunumu tam olarak ifade edemedim.

verdiğim örnekteki hatanın 5. satırda çıkacağı tabii ki aşikar, ben yukarıdaki kodu örnek olsun diye verdim.

Benim bu uygulamayı asıl yapacağım kod yaklaşık 1000 satır ve bunun içinde çeşitli SQL sorguları ile alınan kullanıcı girişlerinden kaynaklanan sayısız noktada hata oluşabilecektir. Bu yüzden derdimi anlatabilmek için çok basite indirgediğim örneği dikkate almayın lütfen.


Örneğin hata kontrolünü yaptığımız kısma

Kod:
...
Msgbox "Hatanın açıklaması; " & Error
...
şeklinde bir satır ekleyince hatanın sebebini (örneğimizde 'overflow') alabiliyoruz.
İşte hatanın satır numarasını da bu şekilde öğrenebilirmiyiz? Ben bunu öğrenmek istiyorum.

[/code]
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
İşte hatanın satır numarasını da bu şekilde öğrenebilirmiyiz?
Açıkçası böyle bir kod ben bilmiyorum ama muhtemelen vardır. Merak ettim, hata mesajını veren pencere üzerindeki debug tuşuna bastığınızda zaten hata veren satıra gidiyor, bu sizin için yeterli değilmi?
 
Katılım
16 Ağustos 2004
Mesajlar
137
Excel Vers. ve Dili
Office 2010 En 64 Bit
Eğer sadece kendim kullanıyor olsaydım sorun olmazdı ama dosya ağ üzerinde birçok kullanıcının paylaşımına açık olduğundan VBA parolası ile koda erişimi engellemek durumundayım (aslnda sebep gerçekten de kodu göstermek istememek değil, bilmeyen kişilerin istemeyerek veya merak ettikleri için dahi olsa kod üzerinde değişiklik yapmasını engellemek).
İşte bu yüzden 'DEBUG' pasif durumda.
 
Üst