tablo satırı silme

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
403
Excel Vers. ve Dili
Excel 2019
merhabalar aşağıdaki for döngüsünde tablo sütunundaki son satır boş ise tablo satırını silmek istiyorum. tabloda en alttaki boş satırı bulabiliyorum ama silmeye gelince hata alıyorum

Kod:
Sub deneme()

 SonSatır = Sheets("TANIMLAMALAR").Cells(Rows.Count, "D").End(3).Row
 For Satır = 3 To SonSatır
          
        If Cells(Satır, "D") = "" Then 'Satır Sütun Boş ise
        
            Worksheets("TANIMLAMALAR").ListObjects("Tablo10").ListRows(Satır, D).Delete
        
        End If
    Next Satır
End Sub

bu ve bir kaç şekilde daha denedim hata aldım sayfa ismi TANIMLAMALAR tablo ismi Tablo10 neyi yanlış yapıyorum anlamadım yardımlarınızı bekliyorum. şimdiden çok teşekkür ederim.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,196
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Aşağıdaki gibi satırı silebilirsiniz fakat kullandığınız döngü yöntemi sadece son satırı değil bulduğu tüm satırları siler, ve bunu yaparken döngüyü tersten başlatmadığınız için sonuçlar hatalı olur.

Worksheets("TANIMLAMALAR").Rows(Satır).Delete

.
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
403
Excel Vers. ve Dili
Excel 2019
hocam cevabınız için teşekkür ederim. şöyle bir örnek dosya ekledim.
ALIŞ-SATIŞ VE TANIMLAMALAR adında 2 sayfam var
TANIMLAMALAR sayfasındaki ÜRETİCİ sütunu tablo
ALIŞ-SATIŞ Deactivate bölümüne sayfadan çıktığımda TANIMLAMALAR Sayfası ÜRETİCİ Sütununda alttaki tüm boş satırları silmesini istiyorum. ama mümkünse tüm satır yerine tablo satırını silmesi daha iş görür. çok teşekkür ederim
 

Ekli dosyalar

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,196
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Farklı yollarda olabilir, bahsettiğim ters döngülü örnek;
Kod:
Private Sub Worksheet_Deactivate()
    Dim St As Worksheet, son As Long, i As Long
    Set St = Sheets("TANIMLAMALAR")
    son = St.Cells(Rows.Count, "D").End(xlUp).Row
    Application.ScreenUpdating = False
    For i = son To 6 Step -1
        If St.Cells(i, "D") = "" Then
            St.Cells(i, "D").Delete Shift:=xlUp
        End If
    Next i
    Application.ScreenUpdating = True
End Sub
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
403
Excel Vers. ve Dili
Excel 2019
Farklı yollarda olabilir, bahsettiğim ters döngülü örnek;
Kod:
Private Sub Worksheet_Deactivate()
    Dim St As Worksheet, son As Long, i As Long
    Set St = Sheets("TANIMLAMALAR")
    son = St.Cells(Rows.Count, "D").End(xlUp).Row
    Application.ScreenUpdating = False
    For i = son To 6 Step -1
        If St.Cells(i, "D") = "" Then
            St.Cells(i, "D").Delete Shift:=xlUp
        End If
    Next i
    Application.ScreenUpdating = True
End Sub
sağolun hocam çok makbule geçti tam istediğim gibi çok teşekkür ederim ellerinize sağlık
 
Üst