• DİKKAT

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

UserForm üzerinden bir sayfadaki boş satırları silme

Katılım
1 Şubat 2007
Mesajlar
516
Excel Vers. ve Dili
excel2003
Slm.
Satır silme konusu çok açılmış, arama yaptım ancak bulamadım. UserForm üzerine koyacağımız bir düğme ile sayfa1 deki A1 ile A100 arasındaki boş olan satırların silinmesini istiyorum. Kod yazarsanız sevinirim.
 
yanıt

Kod:
Private Sub CommandButton1_Click()
Dim sat As Integer
    For sat = 100 To 1 Step -1
        If Cells(sat, "a") = "" Then
            Cells(sat, "a").EntireRow.Delete
        End If
    Next
End Sub
 

Ekli dosyalar

Hocam ilginiz için teşekkürler ama sayfa adı belirtilmemiş kodda. ben sadece belli bir sayfa1 daki boş hücreleri silmek istiyorum ayrıca sayfa2 dede a1:e30 aralığının değerlerini temizlemek istiyorum yardımcı olursanız sevinirim
 
Son düzenleme:
Ziya Hocamın End Sub ile biten kodunun hemen üzerine;

Sheets("Sayfa2").Range("A1:E30").Clearcontents

yazarsanız, sanırım istediğiniz olacaktır.
 
Sn. Skorpiyon
Bu kodu uyguladığım zaman sayfa1 için istediğim kodu karşıladı. Teşekkür ediyorum. Sayfa2 için ayrı bir kod bulmam lazım. Sayfa 2 de satır silmeyecek sadece a1 ile e30 aralığındaki girilmiş verileri temizleyecek. e den sonraki sütunlarda ve 30 dan sonraki sütunlarda formül oluşturduğum için satır silme işimi bozuyor. Tekrar teşekkürler
 
Halit Beyin eklemiş olduğu izin takip dosyasından aldığım kodları kullanarak o problemide hallettim. Halit beye teşekkürlerimi sunuyorum. Ancak şöyle bir problemim var:UserFormda sınıf seçip lestele diyoruz ListBox üzerinde isimlere tıkladığımda ek3 e yazdırıyorum. Temizle tuşuyla a1:b100 aralığını temizliyor.
Problem1 temizle dedikten sonra tekrar listede isimlere tıkladığımızda kalan yerden devam ediyor.
Problem2 Temizle dedikten sonra sınıf değiştirdiğimizde seçili ismi 2 defa otomatik olarak ekliyor.
Sayfayı temizledikten sonra a1 den itibaren yazdırmak istiyorum dosya ektedir teşekkürler
 

Ekli dosyalar

3 Nolu mesajınızda Sayfa2 A1:E30 aralığındaki veriyi temizlemek (silmek değil yani) istiyorum demişsiniz. Clearcontents komutu silme işlemi yapmaz. Seçilen aralıktaki hücrelerin içeriğini temizler. Haliyle seçilen aralıktaki hücrelerde formüller var ise, onları da temizleyecektir. Bilginize...
 
Sn Skorpiyon
Temizleme işini hallettik. Sayfayı temizledikten sonra listboxtan tekrar isim seçtiğimizde a sütununda en son kaldığımız yerden devam ediyor. Tekrar a1 den başlaması için ne yapmalıyız. İkinci bir sorunumda sınıf değiştirdiğimizde listbox taki hangi isim seçili durumda ise onu otomatik olarak 2 defa peşpeşe yazıyor. Bunu nasıl giderebiliriz. Teşekkürler
 
Kodlarınızı aşağıdaki şekilde düzelterek deneyiniz.

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If [A1] = "" Then satır = 0
satır = satır + 1
sayı = ListBox1.Value
Sheets("EK3").Select
Cells(satır, 1) = sayı
End Sub

Private Sub ListBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If [B1] = "" Then bsatır = 0
bsatır = bsatır + 1
sayı = ListBox2.Value
Sheets("EK3").Select
Cells(bsatır, 2) = sayı
satır = bsatır
End Sub

1. sorunuz için;
Temizle butonuna bastığınızda satır diye tanımlamış olduğunuz değişkenin değeri sıfırlanmadığından, kaldığı yerden devam etmektedir. Üstte eğer temizleme yapılmışsa (yani A1 hücresi boş ise) satır değişkeninin değerinin sıfırlanması sağlanmıştır. Aynı durum listbox2 içinde geçerli olduğundan aynı şekilde onun içinde sıfırlama yapılmıştır.

2. sorunuz için;
Listele butonunuzdaki kodlar, listboxlara (Siz farkında olmadan) listboxların veri alanı değiştiği için Click olayı yaptırmaktadırlar. Bu da o esnada form üzerinde seçili olan ismin 2.kez (hatta Siz Listele butonuna ne kadar basarsanız, o kadar tekrar ile yazacaktır) veri yazdırmaktadır. Click olayını atlatabilmek için listboxtaki kodlar Click olayından Double Click olayına taşınmıştır. Böylece sorun ortadan kaldırılmıştır.

Kolay gelsin...
 
Son düzenleme:
Sn Skorpiyon öncelikle teşekkür ediyorum. A sütununu hallettik B sütunu da B1 den başlayacak.
If [B1] = "" Then satır = 0 mantığıyla denedim ama olmuyor.Buna nasıl bi çözüm bulacağız.
 
Sn Skorpiyon öncelikle teşekkür ediyorum. A sütununu hallettik B sütunu da B1 den başlayacak.
If [B1] = "" Then satır = 0 mantığıyla denedim ama olmuyor.Buna nasıl bi çözüm bulacağız.

Hocam özür
If [B1] = "" Then bsatır = 0 şeklinde yazınca oldu teşekkürler
 
Mesajda düzenleme yapmıştım. Kontrol ediniz lütfen. 14 nolu mesaj.
 
Geri
Üst