alle zeilen und Spalten wieder einblenden
13.04.2007 14:31:46
Andreas
Hallo Excelprofis!
Ich komme nicht weiter, habe leider nicht viel Ahnung von VBA und komme mit Probieren nicht weiter.
Mit folgendem Code (Danke ans Forum) blende ich, per userForm, bestimmte Zeilen und Spalten aus und drucke dann das ganze.
Private Sub CommandButtonDruckAlle_Click()
Dim lZeile As Long
'zur Auswertung wechseln
Sheets("Auswertung").Select
Application.ScreenUpdating = False
With Sheets("Auswertung")
.Rows("8:1001").Hidden = False
For lZeile = 8 To 1000
If .Cells(lZeile, 29) = "" And _
.Cells(lZeile, 30) = "" And _
.Cells(lZeile, 31) = "" And _
.Cells(lZeile, 32) = "" Then
.Rows(lZeile).Hidden = True
End If
Next
End With
'Sortierung 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:AB").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 = False
'.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
Sheets("Auswertung").Range("B1").Select
'With Sheets("Auswertung")
'.Rows("8:1001").Hidden = False
'.Columns("A:AF").Hidden = False
'nach Nummern sortieren
'Range("A8:AF1500").Select
'Selection.Sort Key1:=Range("A8"), Order1:=xlAscending, Header:=xlNo, _
'OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'End With
Load UserFormAuswertung
UserFormAuswertung.Show
End Sub
Das funktioniert soweit auch.
Nun möchte ich aber, das nach dem Druck alle Zeilen und Spalten wieder eingeblendet werden, da auf meinem Userform noch viele ähnliche Sortier- und Druckfunktionen sind und sich Excel nach mehreren hin- und herschalten aufhängt bzw. langsamer wird.
Kann mir Jemand helfen?
Danke für die Mühe!
mfg, Andreas