• DİKKAT

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

Döngü sonucu kilitlenme oluşuyor

Katılım
7 Ağustos 2007
Mesajlar
328
Excel Vers. ve Dili
excell 2003 - 2007
Arkadaşlar aşağıdaki kodla Bilgiler Sayfasındaki verilerin 1 satır atlayarak seçilmesini sağlıyorum. 5000 kayıt yada yakın olanı belirttiğimde zaman alsa da işlem yapıyor, ancak son satıra kadar denemesini istediğimde kilitlenip kalıyor.
Kod:
Sub Sec()
 
    Set Blglr = Sheets("Bilgiler")
    
    Blglr.Select
 
    Set Alan = Range(Range("A2").Address)

        For x = 2 To [A65536].End(xlUp).Row Step 2
    
            If Alan Is Nothing Then
        
                Set Alan = Range(Range(Cells(x, 1), Cells(x, 1)).Address)
            
            Else
        
                Set Alan = Union(Alan, Range(Range(Cells(x, 1), Cells(x, 1)).Address))
            
            End If
        
        Next
 
    Alan.EntireRow.Select
   
End Sub

Yardımcı olabilirseniz sevinirim. Teşekkürler.
 
birer satır atlatmak suretiyle bitişik olmayan alanlar seçiyorsunuz.

bitişik olmayan alanlar için limit 8.192'dir.
http://support.microsoft.com/default.aspx?scid=kb;en-us;832293
http://msdn.microsoft.com/en-us/library/dd637097(v=office.11).aspx

satırları seçtikten sonra ne yapmak istediğinizi belirtirseniz farklı çözümler bulunabilir.

bu arada kodu aşağıdaki gibi sadeleştirmek mümkün.

Kod:
Sub cift_sat()

Dim sRng As Range
Dim ss As Long

ss = Cells(Rows.Count, 1).End(xlUp).Row
Set sRng = Cells(2, 1)

For i = 4 To ss Step 2
    Set sRng = Union(sRng, Cells(i, 1))
Next

sRng.EntireRow.Select

End Sub

Kod:
Sub tek_sat()

Dim sRng As Range
Dim ss As Long

ss = Cells(Rows.Count, 1).End(xlUp).Row
Set sRng = Cells(1, 1)

For i = 3 To ss Step 2
    Set sRng = Union(sRng, Cells(i, 1))
Next

sRng.EntireRow.Select

End Sub
 
Satırları seçtikten sonra silecek, yalnız sizin verdiğiniz kodla da aynı sıkıntıyı verdi. Zaman kaybetmemek için bu yola başvurmuştum. Dosyalar pdfden excele çevirildi. Veritabanına dönüştürmek için hazırlıyorum.
Silme işlemini gerçekleştiren kodu gerek yok düşüncesiyle yazmadım. Normalde birden fazla satır seçerek atladığında bekletse de bellek tıkanmıyor, ancak tek satır atlayarak yapmasını istediğimde bu gerçekleşiyor.
 
Sayın Mx@Raid,

Satır seçmeniz şart mı ? Seçmeden direkt sildirsek ?

Aşağıdaki kodu bir deneyin. Veri olan son satıra kadar siler.

Sub Düğme1_Tıklat()
For a = 2 To 65536 Step 2
If Cells(a, 1) <> "" Then Rows(a).Delete Shift:=xlUp
a = a - 1
Next a
End Sub
 
Sn. Şaban Sertkaya TEŞEKKÜRLER.
 
Geri
Üst