Merhaba;
Sub sill()
Application.ScreenUpdating = False 'yapılan işlemi ekranda gösterme
On Error Resume Next ' hatadan sonra devam et
Set s2 = ThisWorkbook.Worksheets("silinenler") 'silinenler sayfasını s2 değişkeni olarak tanımla
sonsat = Range("A65536").End(xlUp).Row 'bu sayfadaki sonsatır no'sunu bul
For i = sonsat To 3 Step -1 ' son satır nosundan 3. satıra kadar 1 satır eksilterek ters döngü kur
If WorksheetFunction.Sum(Range("c" & i & ":f" & i)) = 0 Then ' döngü nosuna bağlı satırda C:F aralığı toplamı sıfıra eşitse;
sonsatir = s2.Range("A65536").End(xlUp).Row + 1 ' silinenler sayfasında son dolu satır nosunu bul ve 1 ekleyerek boş satır nosunu belirle
For k = 1 To 8 ' k değişkenini 1 den 8 e kadar döndür
s2.Cells(sonsatir, k) = Cells(i, k) ' silinenler sayfasında sonsatır noya k sütun numarasına göre verileri yaz
Next k ' döngü sonu
Rows(i).Delete shift:=xlUp ' bu sayfada i değişken nolu satırı sil
End If ' şart sonu
Next i 'döngü sonu
Application.ScreenUpdating = True 'yapılan işlemi ekranda gösterme durumunu normale çevir
MsgBox "İşlem TAMAM.", vbInformation ' işlem bitti mesajı ver
End Sub 'makroyu sonlandır
Kullanılan makronun satır satır açıklamasını baskılı yazıyla her satırda belirttim.
Bilindiği gibi makro ile silme işleminde geri dönüş olmaz.
İsteğiniz olmadığı halde hatalı bir silme işleminin telafisi için silinenler sayfası oluşturdum ve silme işleminden önce silinen 8 sütunu bu sayfaya yazdırdım.
gerekli görmezseniz kodlarda;
Set s2 = ThisWorkbook.Worksheets("silinenler")
sonsatir = s2.Range("A65536").End(xlUp).Row + 1
For k = 1 To 8
s2.Cells(sonsatir, k) = Cells(i, k)
Next k
Satırlarını silin.
İyi çalışmalar.
3. mesajda belirttiğiniz 3 satırı silin.