• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Excel Vba on error sorunu/isteği

Katılım
17 Aralık 2019
Mesajlar
31
Excel Vers. ve Dili
2010
Merhabalar,
Aşağıdaki makroda S1.Cells(X, 38) = "0" ise ilerlemeyi durdurup "hatalı giriş" uyarısını almak istiyorum
desteğinizi rica ederim.


For X = 6 To Son
On Error Resume Next
If S1.Range("G" & X) = "KAMYON" And S1.Range("W" & X) = "IRMAK" Then
Veri = Application.WorksheetFunction.VLookup(S1.Range("X" & X), S2.Range("B:I"), 8, 0)
If Err.Number <> 0 Then
S1.Cells(X, 38) = "0"
Else
S1.Cells(X, 38) = Veri
End If
End If
On Error GoTo 0
Next
 
Kod:
For X = 6 To Son
        On Error Resume Next
        If S1.Range("G" & X) = "KAMYON" And S1.Range("W" & X) = "IRMAK" Then
        Veri = Application.WorksheetFunction.VLookup(S1.Range("X" & X), S2.Range("B:I"), 8, 0)
        If Err.Number <> 0  And S1.Cells(x, 38) = "0" Then
           Msgbox "Hatalı Giriş"
Exit Sub
        ElseIf Err.Number <> 0 And S1.Cells(x, 38) <> "0" Then
            S1.Cells(X, 38) = Veri
        End If
        End If
        On Error GoTo 0
        Next

Deneyin
 
Kod:
For X = 6 To Son
        On Error Resume Next
        If S1.Range("G" & X) = "KAMYON" And S1.Range("W" & X) = "IRMAK" Then
        Veri = Application.WorksheetFunction.VLookup(S1.Range("X" & X), S2.Range("B:I"), 8, 0)
        If Err.Number <> 0  And S1.Cells(x, 38) = "0" Then
           Msgbox "Hatalı Giriş"
Exit Sub
        ElseIf Err.Number <> 0 And S1.Cells(x, 38) <> "0" Then
            S1.Cells(X, 38) = Veri
        End If
        End If
        On Error GoTo 0
        Next

Deneyin
olmadı maalesef IRMAK adında hücreyi buluyor yanlış olanı boş yapıyor ama doğru olanlarıda boş yapıp devam ediyor kod
 
örnek dosyayı barındırıcı sitelerden birine yükler misiniz
ilginize çok teşekkür ederim.Aşağıdaki şekilde çözdüm işimi gördü

For X = 6 To Son
On Error Resume Next
If S1.Range("G" & X) = "KAMYON" And S1.Range("W" & X) = "IRMAK" Then
Veri = Application.WorksheetFunction.VLookup(S1.Range("X" & X), S2.Range("B:I"), 8, 0)
If Err.Number <> 0 Then
S1.Cells(X, 38) = "Hata"
S1.Cells(X, 38).font.Color = vbRed
MsgBox " Irmak KAMYON Alış Fiyatı hesaplamadı.", vbCritical, "Hatalı Giriş"
Else
S1.Cells(X, 38) = Veri
End If
End If
On Error GoTo 0
Next
 
Geri
Üst