Kontrol Et Ve Temizle Makrosu

Katılım
15 Haziran 2021
Mesajlar
147
Excel Vers. ve Dili
Office 2016
Merhaba

Şöyle bir tablom var.

Elma

1

Armut

2

Kiraz

0

Muz

1

Ayva

0

  


Makronun yapmasını istediğim şey. B sütununda sıfır olan verileri tespit edip hem a hem b sütununu temizlemesi. Örneğin ayva karşılığı 0, hem ayvayı hem karşılığındaki 0 değerini silecek.

Yardımcı olabilecek var mı ?
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Satırı tamamen silmek için.
Kod:
Sub test1()
    Dim Bul As Range
    Do
        Set Bul = Range("B1:B" & Rows.Count).Find(what:=0, lookat:=xlWhole)
        If Bul Is Nothing Then
            MsgBox "Tamalandı."
            Exit Sub
        End If
        Bul.EntireRow.Delete
    Loop
End Sub

Hücreleri temizlemek için.
Kod:
Sub test2()
    Dim Bul As Range
    Do
        Set Bul = Range("B1:B" & Rows.Count).Find(what:=0, lookat:=xlWhole)
        If Bul Is Nothing Then
            MsgBox "Tamalandı."
            Exit Sub
        End If
        Bul = ""
        Cells(Bul.Row, "A") = ""
    Loop
End Sub
 
Katılım
15 Haziran 2021
Mesajlar
147
Excel Vers. ve Dili
Office 2016
Merhaba.

Hücreleri temizlemek için.
Kod:
Sub test2()
    Dim Bul As Range
    Do
        Set Bul = Range("B1:B" & Rows.Count).Find(what:=0, lookat:=xlWhole)
        If Bul Is Nothing Then
            MsgBox "Tamalandı."
            Exit Sub
        End If
        Bul = ""
        Cells(Bul.Row, "A") = ""
    Loop
End Sub
Mükemmel çalışıyor. Teşekkür ederim. Peki şöyle denedim ama çalıştıramadım acaba neden ?

Taradığı alanı B1:B19 olarak sınırlandırdım tam da o satırda hata alıyorum.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Kodları paylaşın hatayı bulmaya çalışalım.
 
Katılım
15 Haziran 2021
Mesajlar
147
Excel Vers. ve Dili
Office 2016
Kodları paylaşın hatayı bulmaya çalışalım.
Bu kodu çalıştırmaya çalıştığımda
Kod:
Sub test()
    Dim Bul As Range
    Do
        Set Bul = Range("E1:E19" & Rows.Count).Find(what:=0, lookat:=xlWhole)
        If Bul Is Nothing Then
            Exit Sub
        End If
        Bul = ""
        Cells(Bul.Row, "D") = ""
    Loop
End Sub
Bu satırda hata alıyorum.
Set Bul = Range("E1:E19" & Rows.Count).Find(what:=0, lookat:=xlWhole)
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Rows.Count = Sayfadaki satır sayısı demek. Yani tüm sütunda arar.

Böyle olmalı.
Kod:
Set Bul = Range("E1:E19").Find(what:=0, lookat:=xlWhole)
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Rica ederim. Kolay gelsin.
 
Üst