• DİKKAT

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

If not like or kullanımı

  • Konbuyu başlatan Konbuyu başlatan Usyk
  • Başlangıç tarihi Başlangıç tarihi
Katılım
20 Temmuz 2006
Mesajlar
171
Excel Vers. ve Dili
Office 2016 Tr
Merhaba

If Not metin Like "*aaa*" Or metin Like "*bbb*" Then

şeklinde yazdım olmadı. Yapmak istediğim
Metin aaa ya da bbb içermiyorsa. Düzeltebilir misiniz?
 
Merhaba
Şöyle deneyebilirsiniz.
Kod:
If metin Like "*aaa*" = False Or metin Like "*bbb*" = False Then
 
Merhaba,
Bu gibi olumsuz ifadelerde "or" yerine "and" kullanmak daha isabetli bir tercih olur. Yukarıdaki kodlarda yer alan "or" ifadesini "and" ile değiştiriniz.
Bunun dışında isteğinizle ilgili alternatif olarak instr de kullanılabilir.
Kod:
If InStr(1, metin, "aaa") = 0 And InStr(1, metin, "bbb") = 0 Then
 
Sayın PLİNT

Yazdığınız gibi uyguladım ama sanırım başka bir yerde hatam var.

For i = 2 To s2.Range("b" & Rows.Count).End(3).Row

metin = s2.Cells(i, "d").Value

*** With s2.Range("b" & Rows.Count)

******* If metin Like "*AAA*" = False Or metin Like "*BBB*" = False Or metin Like "*CCC*" = False Then

*********** Rows(i).Delete

******* End If

*** End With

Next i
 
Sanırım yanlışımı buldum. Örneğin 5. Satırı silince 6. Satır 5. Satıra kayıyor. Ama "i" değeri 6 oluyor. Mantık önemli tabi. Ama çözümü henüz bulamadım.
 
Merhaba.

Döngüyü tersten kurmayı veya i değerini değiştirmeyi denediniz mi acaba?
.
Kod:
For i = [COLOR="blue"]s2.Range("b" & Rows.Count).End(3).Row[/COLOR] [B][COLOR="red"]To[/COLOR][/B] [COLOR="Blue"]2[/COLOR] [B][COLOR="Red"]Step -1[/COLOR][/B]

veya [COLOR="Blue"]Rows(i).Delete[/COLOR] satırından sonra
[B][COLOR="Red"]i = i - 1[/COLOR][/B]
 
Sn Ömer BARAN

Denedim o şekilde sonsuz döngüye giriyor sanırım.
Ama esas problem Like sözdiziminde sanırım.
 
Yolu değiştirerek sorunu çözdüm.

Like yazımında Or yerine And kullanmam gerekiyormuş.
Koşula uyan satırların boş bir sütuna 1 yazdırdım.
Sonra da 1 olan satırları sildirdim.

İlgi ve yardımlarınıza çok teşekkür ederim.
 
Merhaba
Sorunu çözmüşsünüz ama satır silinecek ise Ömer bey in dediği gibi aşağıdan yukarıya ve üç
şart varsa sn mucit77 nin kodlarını aşağıdaki gibi kullanırsanız hücreye "1" yazmadanda aşağıdaki kod alternatif olur
Kod:
[SIZE="2"]Private Sub CommandButton1_Click()
[COLOR="Blue"]Set S2 = ActiveSheet[/COLOR]
For i = S2.Range("b" & Rows.Count).End(3).Row To 2 Step -1
metin = S2.Cells(i, "d").Value
If InStr(1, metin, "AAA") + InStr(1, metin, "BBB") + InStr(1, metin, "CCC") = 0 Then
Rows(i).Delete
End If
Next
End Sub[/SIZE]
 
Geri
Üst