hata durumunda başka işlem yaptırma

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
aşağıdaki kod ile düşeyara yapıyorum Range("I1") = WorksheetFunction.VLookup(Range("C1"), s1.Range("C:X"), 3, 0) hata verdiğinde I1 hücresine kayıtlı değil nasıl yazabilirim. kodun bu kısmını çözemedim

Kod:
    If Intersect(Target, [C1]) Is Nothing Then Exit Sub
    On Error GoTo hata
    Range("I1") = WorksheetFunction.VLookup(Range("C1"), s1.Range("C:X"), 3, 0)
hata:
    Range("I1") = "Kayıtlı Değil"
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
Merhaba

Deneyiniz.
C++:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [C1]) Is Nothing Then Exit Sub
Set s1 = Sheets("Sayfa2")
    On Error GoTo hata
    sonuc = WorksheetFunction.VLookup(Range("C1"), s1.Range("C:X"), 3, 0)
    If sonuc <> "" Then
    Range("I1") = sonuc
Else
Range("I1") = "Kayıtlı Değil"
End If
hata:
End Sub
 

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
hocam hata değiştirince çalıştı sanırım sorun olmaz teşekkür ederim

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, [C1]) Is Nothing Then Exit Sub
Set s1 = Sheets("İhale_Bilgileri")
    On Error GoTo hata
    sonuc = WorksheetFunction.VLookup(Range("C1"), s1.Range("C:X"), 3, 0)
hata:
    If sonuc <> "" Then
    Range("I1") = sonuc
Else
Range("I1") = "Kayıtlı Değil"
End If
End sub
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Alternatif
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Sonuc As Range
    Dim S1 As Worksheet
    
    If Not Intersect(Target, [C1]) Is Nothing Then
        Set S1 = Sheets("İhale_Bilgileri")
        Sonuc = S1.Range("C:X").Find(what:=Range("C1"), lookat:=Range("C1"))
        If Sonuc Is Nothing Then
            Range("I1") = "Kayıtlı Değil"
        Else
            Range("I1") = S1.Cells(Sonuc.Row, "E")
        End If
    End If
End Sub
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
hocam hata değiştirince çalıştı sanırım sorun olmaz teşekkür ederim

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, [C1]) Is Nothing Then Exit Sub
Set s1 = Sheets("İhale_Bilgileri")
    On Error GoTo hata
    sonuc = WorksheetFunction.VLookup(Range("C1"), s1.Range("C:X"), 3, 0)
hata:
    If sonuc <> "" Then
    Range("I1") = sonuc
Else
Range("I1") = "Kayıtlı Değil"
End If
End sub
Merhaba

Sizin hatadan kastınız sonucun bulunmaması olsa gerek.
Bu hata değil, verinin olmadığıdır.

s1.Range("C:X"), 30, 0) veya s1.Range("C: D"), 3, 0)
Burayı değiştirirseniz hata olur, o zaman hata satırına yönlendirirsiniz.
 

burhancavus61

Altın Üye
Katılım
13 Mayıs 2005
Mesajlar
761
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
03.11.2024
evet veri yoksa "Kayıtlı Değil" yazacak hata yerini değiştirdim şuan çalışıyor
 
Üst