- 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.
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.
