Code wird langsamer
13.04.2007 19:37:22
Andreas
Hallo Excelprofis!
Mit dem nachfolgendem Code blende ich, über eine Userform-Schaltfläche, bestimmte Zeilen und Spalten aus, drucke dann und blende alles wieder ein. Beim ersten Aufruf geht das relativ schnell (ca. 2 sek bis Druckanfang). Klicke ich nach dem drucken erneut auf die Schaltfläche dauerts ca. 6 sek - 8 sek bis Druckanfang, auch weitere Druckfunktionen (andere Zeilen und Spalten) dauern dann solange.
Kann mir Jemand sagen warum das so ist. Und kann man das irgendwie ändern.
Private Sub CommandButtonDruck1_Click()
Dim lZeile As Long
'zur Auswertung wechseln
Sheets("Auswertung").Select
'With Sheets("Auswertung")
'For i = 1 To 5
'.Cells(i, 2) = "Besucher Tag " & i & ": " & worksheetsfunction.Sum(.Range(.Cells(5, i + 28), _
_
_
Cells(1000, i + 28)))
'Next i
'End With
Application.ScreenUpdating = False
With Sheets("Auswertung")
.Rows("8:1001").Hidden = False
For lZeile = 8 To 1000
If .Cells(lZeile, 29) = "" Then
.Rows(lZeile).Hidden = True
End If
Next
End With
'Sortieren nach Firma
Range("A8:AF1500").Select
Selection.Sort Key1:=Range("B8"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'Spalten ausblenden
Range("A:A,C:C,E:E,F:F,G:G,H:H,I:I,L:AF").EntireColumn.Hidden = True
Application.ScreenUpdating = True
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
'.LeftHeader = ""
'.CenterHeader = ""
'.RightHeader = ""
'.LeftFooter = ""
'.CenterFooter = ""
'.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.78740157480315)
.RightMargin = Application.InchesToPoints(0.78740157480315)
.TopMargin = Application.InchesToPoints(0.78740157480315)
.BottomMargin = Application.InchesToPoints(0.590551181102362)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.PrintHeadings = False
.PrintGridlines = True
'.PrintComments = xlPrintNoComments
'.PrintQuality = -3
'.CenterHorizontally = False
'.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
'.Order = xlDownThenOver
'.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 999
End With
Unload UserFormAuswertung
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
With Sheets("Auswertung")
Sheets("Auswertung").Unprotect "xyz"
Rows.EntireRow.Hidden = False
Columns.EntireColumn.Hidden = False
'nach Nummern sortieren
Range("A8:AF1500").Select
Selection.Sort Key1:=Range("A8"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Sheets("Auswertung").Protect "xyz"
End With
Load UserFormAuswertung
UserFormAuswertung.Show
Sheets("Auswertung").Range("B1").Select
End Sub
Danke für die Hilfe!
mfg, Andreas