Excel Formül
Modül 5: İleri Düzey Veri İşleme ve Raporlama

Hata Yakalama Yönetimi (On Error)

Kusursuz yazdığınızı düşündüğünüz bir makro, kullanıcı yanlış bir işlem yaptığında (Örn: Olmayan bir sayfayı silmeye çalıştığında veya sayıyı sıfıra böldüğünde) hata vererek durur ve ekrana İngilizce karmaşık hata kodları çıkarır. Profesyonel yazılımcılar bu tür krizleri Hata Yakalama (Error Handling) komutlarıyla yönetirler.

On Error Resume Next

"Bir hata oluşursa sakın durma, hatayı yoksay ve bir sonraki satırdan çalışmaya devam et" komutudur.

On Error Resume Next
Range("A1").Value = 10 / 0 ' Hata verir ama durmaz
MsgBox "İşlem bitti"

On Error GoTo Etiket

"Bir hata oluşursa programı çökertme, kodun altındaki hata yönetim etiketine yönlendir" komutudur.

On Error GoTo HataGoster
' Kodlar...
Exit Sub
HataGoster:
MsgBox "Bir hata oluştu!"

Canlı Simülatör: Hata Yönetimi ile Güvenli Bölme

Aşağıdaki makroda sayıyı 0'a bölme hatası (Run-time error) tetiklenecektir. Ancak On Error Resume Next sayesinde kod çökmeden çalışmaya devam edecek ve işlemi güvenle tamamlayacaktır. Kodu Çalıştır butonuna basın.

Visual Basic Editörü
Module1 (Code)
Sub GuvenliBolme()
    ' Hata oluşursa yoksay ve devam et
    On Error Resume Next

    ' Matematiksel olarak imkansız işlem (0'a bölme)
    Cells(1, 1).Value = 100 / 0

    Cells(2, 1).Value = "İşlem Çökmeden Tamamlandı"

    MsgBox "Hata başarıyla yönetildi, makro durmadı!", vbInformation
End Sub
Canlı Excel Sayfası
A2
A (Sonuç Ekranı)
1
2
Microsoft Excel ✕
Hata başarıyla yönetildi, makro durmadı!