Excel VBA Hata Yönetimi: On Error GoTo, Resume Next ve Err Kullanımı
1. Örnek Veri Tablosu
Aşağıdaki tabloda bazı hücrelerde hatalı veriler var. Bu tablo üzerinde hata yönetimi yöntemlerini test edeceğiz.
Tablo Bilgisi
Tabloda 2 adet hatalı veri var: B3 (boş fiyat) ve C5 (boş stok). Bu hataları VBA ile nasıl yöneteceğimizi göreceğiz.
2. Yöntem 1: On Error GoTo ile Hata Yakalama
On Error GoTo ile hata oluştuğunda belirlediğiniz etikete gidersiniz. Böylece hata mesajı gösterip kodun çökmesini engellersiniz.
Sub HataYakala()
On Error GoTo HataVar
Dim toplam As Double
toplam = Range("B2") / Range("B3")
MsgBox "Sonuç: " & toplam
Exit Sub
HataVar:
MsgBox "Hata oluştu: " & Err.Description
End Sub
Kod Açıklaması
- On Error GoTo HataVar → Hata oluşursa HataVar etiketine git
- Range("B2") / Range("B3") → B3 boş olduğu için hata oluşur
- Err.Description → Hata açıklamasını gösterir
Tablo: ⚠️ Hata oluşan hücreler:
📌 Sonuç: On Error GoTo ile hata yakalandı ve mesaj gösterildi. Kod çökmedi.
3. Yöntem 2: On Error Resume Next ile Hata Atlama
On Error Resume Next ile hata oluştuğunda hatayı görmezden gelir ve kod çalışmaya devam eder. Excel'deki EĞERHATA() gibi.
Sub HataAtla()
On Error Resume Next
Dim toplam As Double
toplam = Range("B2") / Range("B3")
On Error GoTo 0
MsgBox "Sonuç: " & toplam
End Sub
Kod Açıklaması
- On Error Resume Next → Hataları atla, devam et
- Range("B2") / Range("B3") → Hata oluşur ama atlanır
- On Error GoTo 0 → Hata yönetimini kapat
Uyarı
Hataları görmezden gelmek bazen sorun yaratabilir. Kullanırken dikkatli olun!
Tablo: 🔵 Atlanan hatalar:
📌 Sonuç: On Error Resume Next ile hatalar atlandı ve kod çalışmaya devam etti.
4. VBA Makroları için Ön Hazırlık
1. Geliştirici Sekmesini Aktifleştirin
Excel'de VBA kodlarını yazabilmek için önce Geliştirici sekmesini aktif etmelisiniz. Detaylı bilgi için tıklayın.
3. Modül Ekleyin
Kodlarınızı yazmak için bir Modül eklemelisiniz. Makro yazma rehberi için tıklayın.
2. Visual Basic Düzenleyici'yi Açın
Alt + F11 (Windows) veya Option + F11 (Mac) ile hızlıca açabilirsiniz.
4. Kodu Çalıştırın
Yazdığınız kodu çalıştırmak için F5 tuşuna basın veya Çalıştır butonuna tıklayın. VBA makro nedir? öğrenmek için tıklayın.
F5
▶️ Makroyu çalıştır
5. Sıkça Sorulan Sorular
01 VBA'da hata yönetimi nasıl yapılır?
On Error GoTo veya On Error Resume Next ile hata yönetimi yapılır.
02 On Error GoTo ve On Error Resume Next arasındaki fark nedir?
GoTo hatayı yakalar, Resume Next hatayı atlar.
03 Err.Number ne işe yarar?
Hata numarasını döndürür. Örnek: 11 = Sıfıra bölme.
04 Mac'te VBA hata yönetimi çalışır mı?
Evet, Mac'te de aynı kodlar çalışır.
05 On Error GoTo 0 ne işe yarar?
Hata yönetimini kapatır.
06 Hata yönetimi neden önemlidir?
Makroların çökmesini engeller ve kullanıcıya anlamlı mesajlar gösterir.