Aranan veri bulunamazsa makrodan çıklsın

Katılım
23 Şubat 2007
Mesajlar
1,212
Excel Vers. ve Dili
Excel2003
Değerli Dostlar Selamlar,
Sub Bul()
On Error Resume Next
Set S1 = Sayfa4
S1.Select
Set KRİTER = UserForm1.ComboBox1
ara = S1.[B:B].Find(What:=KRİTER, LookIn:=xlValues, LookAt:=xlWhole).Activate
UserForm1.TextBox1.Value = ActiveCell.Offset(0, 1).Value
UserForm1.TextBox2.Value = ActiveCell.Offset(0, 2).Value
Set S1 = Nothing
Exit Sub
End Sub
Bu kodla arama veri alma işlemi yapıyorum. Aranan veri bulunamazsa farklı veriler geliyor. Bulunamayınca işlemi sonlandırıp çıkmasını istiyorum. Nasıl bir ekleme yapmam gerekir.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
Sub Bul()
On Error Resume Next
    Set S1 = Sayfa4
    S1.Select
    Set KRİTER = UserForm1.ComboBox1
    ara = S1.[B:B].Find(What:=KRİTER, LookIn:=xlValues, LookAt:=xlWhole).Activate
[B][COLOR=DarkGreen]  If (ara Is Nothing) Then exit sub[/COLOR][/B]
'  If (Not rngBul Is Nothing) Then
    UserForm1.TextBox1.Value = ActiveCell.Offset(0, 1).Value
    UserForm1.TextBox2.Value = ActiveCell.Offset(0, 2).Value
    Set S1 = Nothing
    Exit Sub
End Sub
deneyiniz hata verirsa aşğıdaki yapıyı inceleyin:

Kod:
Sub arabulvs()
Dim csf As Worksheet: Set csf = Worksheets("bayiler")
Dim strAra$, strkrs1$, strkrs2$
With csf
  strAra = "alpata"
  strkrs1 = "alpata"
[B][COLOR=DarkGreen]  Set rngBul = .Range("b1:b65000").Cells.Find(strAra, LookIn:=xlValues, LookAt:=xlWhole)             '||
  If (Not rngBul Is Nothing) Then[/COLOR][/B]
    If UCase(rngBul.Value) = UCase(strkrs1) Then
      MsgBox ("Mükerrer kayıt"), , "Bu kayıt daha önce girilmiş."
    End If
  Else
    MsgBox "giriş serbest"
  End If
 Set rngBul = Nothing
End With
End Sub
 
Katılım
23 Şubat 2007
Mesajlar
1,212
Excel Vers. ve Dili
Excel2003
Selamlar,
Cevabınız için teşekkürler Sayın hsayar,
Sub Bul()
On Error Resume Next
Set S1 = Sayfa4
S1.Select
Set KRİTER = UserForm1.ComboBox1
ara = S1.[B:B].Find(What:=KRİTER, LookIn:=xlValues, LookAt:=xlWhole).Activate
If UserForm1.ComboBox1.Value <> ActiveCell.Value Then Exit Sub
UserForm1.TextBox1.Value = ActiveCell.Offset(0, 1).Value
UserForm1.TextBox2.Value = ActiveCell.Offset(0, 2).Value
Set S1 = Nothing
Exit Sub
End Sub
Şu şekilde uyguladım oldu.
 
Üst