• DİKKAT

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

Makro daha hızlı olabilir mi?

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,543
Excel Vers. ve Dili
2021 LTSC TR
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice 20160913
    Dim xRg As Range
    Application.ScreenUpdating = False
        For Each xRg In Range("C6:C45")
            If xRg.Value = "" Then
                xRg.EntireRow.Hidden = True
        
            Else
                xRg.EntireRow.Hidden = False
            End If
        Next xRg
    Application.ScreenUpdating = True
End Sub

Yukarıda ki makro çalışıyor ama aheste aheste çalışıyor. Bu makronun daha hızlı çalışması mümkün mü?

Kod sayfadan sayfaya geçtiği zaman otomatik olarak boş satırı gizliyor
 
Bu kod zaten çok hızlı çalışıyor sizin dosyanızın boyutu çok büyük olmalı veya formüller baya çok olmalı
bir de bunu dene

Rich (BB code):
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice 20160913
With Application
.Calculation = xlManual
.ScreenUpdating = False
.EnableEvents = False
End With

Dim xRg As Range
For Each xRg In Range("C6:C45")
If xRg.Value = "" Then
xRg.EntireRow.Hidden = True
Else
xRg.EntireRow.Hidden = False
End If
Next xRg

With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlAutomatic
End With
End Sub
 
Halit abi teşekkür ederim. En azından diğerinden hızlı
 
Alternatif;

Hız olarak daha iyi sonuç alabilirsiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Alan As Range, Veri As Range
    
    With Application
        .Calculation = xlManual
        .ScreenUpdating = False
        .EnableEvents = False
    End With
    
    Range("C6:C45").EntireRow.Hidden = False
    
    For Each Veri In Range("C6:C45")
        If Veri.Value = "" Then
            If Alan Is Nothing Then
                Set Alan = Veri
            Else
                Set Alan = Union(Alan, Veri)
            End If
        End If
    Next
    
    If Not Alan Is Nothing Then Alan.EntireRow.Hidden = True
    
    With Application
        .Calculation = xlCalculationAutomatic
        .ScreenUpdating = True
        .EnableEvents = True
    End With
End Sub
 
Geri
Üst