• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Satır Silme(3 sil 1 atla)

Katılım
1 Nisan 2011
Mesajlar
10
Excel Vers. ve Dili
2007 TR
Merhabalar bir makro koduna ihtiyacım var ilk 3 satır silinecek 1 atlayacak sonraki 3 satırı silecek 1 atlayacak şeklinde (örnek olarak 8 satırdan 1,2,3, silinecek 4. kalacak 5,6,7 silinecek 8. satır kalacak şeklinde devam edecek)

Yardımlarınız için şimdiden teşekkür ederim
 
Merhaba,

Satır tamamen mi silinecek yoksa içeriğindeki veri mi silinecek?

.
 
Eğer içindeki veriyi silebilirsem boş satırları silen bir makrom var oda işime yarar
 
Malesef ihtiyacım olan 1,2,3 satırlarını silip 4 kalacak 5,6,7 silinecek 8 kalacak ve sonsuz döngü gerekli yaklaşık 500 satırlık bir veriyi temizlemek istiyorum
 
Aşağıdaki makronun sonsuz döngü olmasını istiyorum

Sub MakroTest()

Rows("1:3").Select
Selection.Delete Shift:=xlUp
Rows("2:4").Select
Selection.Delete Shift:=xlUp
Rows("3:5").Select
Selection.Delete Shift:=xlUp
Rows("4:6").Select
Selection.Delete Shift:=xlUp
Rows("5:7").Select
Selection.Delete Shift:=xlUp
Rows("6:8").Select
Selection.Delete Shift:=xlUp
Rows("7:9").Select
Selection.Delete Shift:=xlUp
Rows("8:10").Select
Selection.Delete Shift:=xlUp
Rows("9:11").Select
Selection.Delete Shift:=xlUp
Rows("10:12").Select

End Sub
 
Merhaba,
Aşağıdaki kodu deneyiniz.
Kod:
Sub Satir_Sil()
Application.ScreenUpdating = False
For x = 1 To Cells(Rows.Count, 1).End(3).Row
Sat = Sat + 1
Range("a" & Sat & ":a" & Sat + 2).Delete shift:=xlUp
Next
MsgBox "İşlem tamamlanmıştır.", vbInformation, "l e u m r u k"
End Sub
 
Alternatif kod

Kod:
Sub Sil()
Application.ScreenUpdating = False
For i = Cells(Rows.Count, "a").End(3).Row - 1 To 1 Step -4
Rows(i & ":" & i - 2).Delete Shift:=xlUp
Next
Application.ScreenUpdating = True
MsgBox "işlem tamam"
End Sub
 
Teşekkürler "leumruk" peki aynı makroyu sütun A'dan L'ye kadar çalıştırabilirmiyiz ?
 
Teşekkürler "leumruk" peki aynı makroyu sütun A'dan L'ye kadar çalıştırabilirmiyiz ?
Merhaba,
Aşağıdaki şekilde deneyin.
Kod:
Sub Satir_Sil()
Application.ScreenUpdating = False
For x = 1 To Cells(Rows.Count, 1).End(3).Row
Sat = Sat + 1
Range("a" & Sat & ":l" & Sat + 2).Delete shift:=xlUp
Next
MsgBox "İşlem tamamlanmıştır.", vbInformation, "l e u m r u k"
End Sub
 
Sub Düğme1_Tıklat()
For a = 1 To [A65536].End(xlUp).Row
For b = 3 To 1 Step -1
Rows(a).Delete
Next: Next
End Sub
 
Hocam peki bu makroyu nasıl güncelleyebiliriz. yani aynı kodu ben ilk 4 satırı silsin daha sonra 26 satır kalsın, sonra 4 satır silsin 26 satır kalsın şeklinde nasıl düzenleyebiliriz.
 
Hocam peki bu makroyu nasıl güncelleyebiliriz. yani aynı kodu ben ilk 4 satırı silsin daha sonra 26 satır kalsın, sonra 4 satır silsin 26 satır kalsın şeklinde nasıl düzenleyebiliriz.

Merhaba,
Aşağıdaki gibi deneyin: A sütununu baz alarak kodlamayı düzenledim. Verileriniz hangi sütundaysa siz kodlamayı o sütuna göre düzenleyin.
Kod:
Sub Sil()
Application.ScreenUpdating = False
Sat = 1
D_Say = WorksheetFunction.CountA(Range("a" & Sat + 3 & ":a" & Rows.Count))
Do While D_Say <> 0
Range("a" & Sat & ":l" & Sat + 3).Delete Shift:=xlUp
Sat = Sat + 26
D_Say = WorksheetFunction.CountA(Range("a" & Sat + 3 & ":a" & Rows.Count))
Loop
MsgBox "İşlem tamamlanmıştır.", vbInformation, "l e u m r u k"
End Sub
 
Merhaba,
Aşağıdaki gibi deneyin:
Kod:
Sub Satir_Sil()
Application.ScreenUpdating = False
Sat = 1
For x = 1 To Cells(Rows.Count, 1).End(3).Row
Range("a" & Sat & ":l" & Sat + 3).Delete shift:=xlUp
Sat = Sat + 26
Next
MsgBox "İşlem tamamlanmıştır.", vbInformation, "l e u m r u k"
End Sub

Hocam çok teşekkür ederim. tam istediğim gibi olmuş. fakat sizden rica etsem kodun anlamını kısaca açıklayabilirmisiniz. çünkü bazen satırların kayma durumları oluyor. mesela ilk 4 satır yerine 3 satır silinmesi, 26 satır kalması gerekirken 20 satır kalması gereken durumlar oluyor. en azından rakamları değiştirerek kodu güncelleyebileyim.
 
Merhaba,
17 numaralı mesajı güncelledim. Kodların kenarına açıklamaları ekledim. Kodu kopyalayıp excel dosyanızın vba editörüne yapıştırdığınızda açıklamaları yeşil renkte görebilirsiniz.
 
Merhaba,
Aşağıdaki gibi deneyin:
Kod:
Sub Satir_Sil()
Application.ScreenUpdating = False
Sat = 1 ' hangi satırdan başlayacaksak o numarayı yazıyoruz.
For x = 1 To Cells(Rows.Count, 1).End(3).Row '1'den başlayarak son dolu satıra kadar döngü oluşturuyor. Hangi satırdan başlayacaksanız o numarayı yazacaksınız.
Range("a" & Sat & ":l" & Sat + 3).Delete Shift:=xlUp 'hangi satır aralığını sileceğinizi belirtir. Sat= 1 iken a1:a4 aralığını siler.
Sat = Sat + 26 'Kalmasını istediğiniz satır sayısını Sat tanımına ekliyorsunuz. Her döngüde 26 ekler ve silmeye o satırdan devam eder.
Next
MsgBox "İşlem tamamlanmıştır.", vbInformation, "l e u m r u k"
End Sub

Üstadım çok teşekkür ederim harikasın
 
Geri
Üst