Hücre içinde w veya x harfleri geçen hücrenin satırını silecek bir makro

Katılım
19 Kasım 2004
Mesajlar
4
Arkadaşlar hücre içindeki metinde w ve x harfleri geçen hücrenin satırını silecek bir makro lazım bana. Örneğin C7 hücresinde w veya x harfi yoksa 7. satır kalacak, eğer bu iki harften biri varsa 7. satırı silinecek. Yardım ederseniz sevinirim.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,369
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Nerede aranacak? Sayfanın tamamı mı yoksa belirli bir sütunda mı?
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,218
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
Yanıt

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo err
If Target Like "*" & "w" & "*" Or Target Like "*" & "x" & "*" Then
Target.EntireRow.Delete shift:=xlUp
End If
err:
End Sub
 

tahsinanarat

Altın Üye
Katılım
14 Mart 2005
Mesajlar
2,167
Excel Vers. ve Dili
Ofis 2019 Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2028
A1 ve B1 hücresine yazdığınız değerlerin geçtiği (a sutununda, dilerseniz a65536'yı istediğiniz sutun harfini yazabilirsiniz) tüm satırları siler
Kod:
Sub sil()
[a2:a65536].Interior.ColorIndex = xlNone
For o = [a65536].End(3).Row To 2 Step -1
If WorksheetFunction.CountIf(Rows(o), "*" & [a1] & "*") <> 0 Then Rows(o).Delete
If WorksheetFunction.CountIf(Rows(o), "*" & [b1] & "*") <> 0 Then Rows(o).Delete
Next
End Sub
 
Katılım
8 Nisan 2006
Mesajlar
15
bende şöyle bir kod yazdım bakarmısınız.fakat hata veriyor éfor without next hatası"
benim yaptıgım tüm "a" sutunundaki satılra için değil sadece 6 tabe satır için fakat çalışmadı.aşagıda:

Sub dd()
Dim x As Integer
Dim i As Integer
For i = 1 To 6
For Each hucre In Range("a1:a6")
x = Len(hucre)
If Mid(hucre, x, 1) = "a" Or Mid(hucre, x, 1) = "b" Then
Rows(i).Delete
Next hucre
Next i
End Sub
 
Katılım
8 Nisan 2006
Mesajlar
15
bunu döngüye girmeden tek bir hucre için yaptıgımda çalıştı.ama bunda "next without for" hata iletisi alıyorum yardımlarınız için sağolun...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,666
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Kulland&#305;&#287;&#305;n&#305;z kodun hata vermesi normaldir. Sn. tahsinanarat beyin &#246;rne&#287;indeki gibi ters d&#246;ng&#252; kurmal&#305;s&#305;n&#305;z.

Kod:
[COLOR=red]For o = [a65536].End(3).Row To 2 Step -1[/COLOR]
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Bu &#351;ekilde deneyebilirsiniz.
Kod:
Sub Makro3()
On Error Resume Next
For s = [a6500].End(3).Row To 1 Step -1
Cells(s, 1).Find("a*").EntireRow.Delete
Cells(s, 1).Find("b*").EntireRow.Delete
Next
End Sub
 
Katılım
8 Nisan 2006
Mesajlar
15
burda karkterler sadece başında geçerse siliyor karkaterlerin hücrenin herhangi bir yerinde geçmesi durumunda silen makro nasıl olmalı..
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,666
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Sn. tahsinanarat beyin 5. mesajda verdi&#287;i kodu denedinizmi?
 
Üst