• DİKKAT

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

Makro Çok Yavaş

Katılım
23 Nisan 2008
Mesajlar
8
Excel Vers. ve Dili
office 2003
Slm lar.

Çok basit bir boş satır gizleme makrosu çok yaşar çalışıyor. Yardımcı olursanız sevinirim.

Belirtilen satır aralığındaki 0 değerlerin gizliyor fakat yavaş. boş belgede hızlı ama ver yüklü de çok bekletiyor.

Sub Gizle()
For Each t In Range("G10:G502").Cells
If t.Value = "0" Then 'boş hücreleri gizler
t.EntireRow.Hidden = True
End If
Next t
End Sub

Birde göster var oda aynı çalışıyor.

Sub Göster()
For Each t In Range("G10:G502").Cells
If t.Value = "0" Then 'boş hücreleri gösterir
t.EntireRow.Hidden = False
End If
Next t
End Sub
 
Slm lar.

Çok basit bir boş satır gizleme makrosu çok yaşar çalışıyor. Yardımcı olursanız sevinirim.

Belirtilen satır aralığındaki 0 değerlerin gizliyor fakat yavaş. boş belgede hızlı ama ver yüklü de çok bekletiyor.

Sub Gizle()
For Each t In Range("G10:G502").Cells
If t.Value = "0" Then 'boş hücreleri gizler
t.EntireRow.Hidden = True
End If
Next t
End Sub

Birde göster var oda aynı çalışıyor.

Sub Göster()
For Each t In Range("G10:G502").Cells
If t.Value = "0" Then 'boş hücreleri gösterir
t.EntireRow.Hidden = False
End If
Next t
End Sub

Kodun yavaşlaması muhtemelen dosyanızdaki verilerin çokluğundan ve bilgisayarınızın hızından kaynaklandığını düşünüyorum benzer bir kod da ben yazdım.

Kod:
Sub Gizle()
For i = 10 To 502
If Cells(i, "G").Value = "0" Then
Rows(i).EntireRow.Hidden = True
End If
Next
End Sub
 
Merhaba,

Alternatif olarak ekran hareketlerini pasif yapmak ve hesaplama yöntemini manuele almak hız kazandırabilir. Denermisiniz.

Eğer bu kodda istediğiniz performansı vermezse filtre yöntemini kullanabilirsiniz.

Kod:
Sub Gizle()
    Dim Alan As Range
 
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
 
    For Each Alan In Range("G10:G502")
        If Alan.Value <> "" And Alan.Value = 0 Then
            Alan.EntireRow.Hidden = True
        End If
    Next
 
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
 
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Hepinize sonsuz teşekkürler
 
Geri
Üst