• DİKKAT

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

Makro çok geç hesaplıyor işlemci İ5 ;

Katılım
8 Mart 2009
Mesajlar
504
Excel Vers. ve Dili
2010
Sub ÖZET_RAPOR()
Application.ScreenUpdating = False
Set SR = Sheets("TÜM BAŞLIKLAR")
Set SL = Sheets("Sayfa2")
Kriter1 = SL.[G2]
Kriter2 = SL.[H2]
Kriter3 = SL.[I2]
Kriter4 = SL.[J2]
Kriter5 = SL.[K2]
SL.Columns("A:CP").Clear
SR.Select
[A6].Select
Selection.AutoFilter
If Kriter1 = "" Then
Selection.AutoFilter Field:=3
Else
Selection.AutoFilter Field:=3, Criteria1:=Kriter1
End If
If Kriter2 = "" Then
Selection.AutoFilter Field:=4
Else
Selection.AutoFilter Field:=4, Criteria1:=Kriter2
End If
If Kriter3 = "" And Kriter4 = "" Then
Selection.AutoFilter Field:=1
ElseIf Kriter3 <> "" And Kriter4 = "" Then
Selection.AutoFilter Field:=1, Criteria1:=">=" & CLng(CDate(Kriter3))
ElseIf Kriter3 = "" And Kriter4 <> "" Then
Selection.AutoFilter Field:=1, Criteria1:="<=" & CLng(CDate(Kriter4))
ElseIf Kriter3 <> "" And Kriter4 <> "" Then
Selection.AutoFilter Field:=1, Criteria1:=">=" & CLng(CDate(Kriter3)), Operator:=xlAnd, Criteria2:="<=" & CLng(CDate(Kriter4))
End If
If Kriter5 = "" Then
Selection.AutoFilter Field:=9
Else
Selection.AutoFilter Field:=9, Criteria1:=">=" & Kriter5
End If
SR.[A6].CurrentRegion.Copy
SL.Select
[A6].Select
ActiveSheet.Paste
Application.CutCopyMode = False
Columns("A:CP").EntireColumn.AutoFit
[A6].Select
SR.Select
Selection.AutoFilter
SL.Select
Application.ScreenUpdating = True
SAY = WorksheetFunction.CountA(SL.[A6:A65536])
If SAY = 0 Then MsgBox "VERDİĞİNİZ KRİTERLERE UYGUN KAYIT BULUNAMAMIŞTIR.", vbExclamation, "DİKKAT !"
Exit Sub
MsgBox "VERDİĞİNİZ KRİTERLERE UYGUN " & Format(SAY, "#,##0") & " ADET KAYIT BULUNMUŞTUR.", vbInformation
End Sub




bu makronun hızlı çalışması için nereleri düzeltmem gerekli çalışıyor ama çok geç hesaplıyo 6-7 dk. gibi ayrıca 10 satırdaki SL.Columns("A:CP").Clear
sayfayı temizleme işini 7 satırdan yaptırmam için bu satırı nasıl düzeltmem gerekli.
 
Aslında Auto Filter oldukça hızlıdır. Dosyanızda çok fazla formül olduğunu tahmin ediyorum.

Sayfa temizleme için şunu kullanabilirsiniz:

Kod:
SL.Range("A7:CP65536").Clear
 
Geri
Üst