If not like or kullanımı

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?
 
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
Merhaba
Şöyle deneyebilirsiniz.
Kod:
If metin Like "*aaa*" = False Or metin Like "*bbb*" = False Then
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,405
Excel Vers. ve Dili
2007 Türkçe
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
 
Katılım
20 Temmuz 2006
Mesajlar
171
Excel Vers. ve Dili
Office 2016 Tr
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
 
Katılım
20 Temmuz 2006
Mesajlar
171
Excel Vers. ve Dili
Office 2016 Tr
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.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
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]
 
Katılım
20 Temmuz 2006
Mesajlar
171
Excel Vers. ve Dili
Office 2016 Tr
Sn Ömer BARAN

Denedim o şekilde sonsuz döngüye giriyor sanırım.
Ama esas problem Like sözdiziminde sanırım.
 
Katılım
20 Temmuz 2006
Mesajlar
171
Excel Vers. ve Dili
Office 2016 Tr
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.
 
Katılım
31 Aralık 2014
Mesajlar
1,845
Excel Vers. ve Dili
Excel 2010
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]
 
Üst