ich möchte per Commandbutton ein Tabellenblatt auf dem Standartdrucker ausdrucken.
Gedruckt werden sollen alle ausgefüllten zeilen zuzüglich 5 Leerzeilen.
Hat jemand eine Lösung für ein passendes Makro?
Danke für die Bemühung!
tom
Sub Schaltfläche4_BeiKlick()
'Drucken Daten + 5 Leerzeilen auf aktuell gewählten Drucker
Dim wks As Worksheet
Set wks = ActiveSheet
wks.PageSetup.PrintArea = "A1:" _
& wks.Cells.SpecialCells(xlCellTypeLastCell).Offset(5, 0).Address
wks.PrintOut
' wks.PrintPreview
End Sub
Sub Schaltfläche5_BeiKlick()
'Drucken Daten + 5 Leerzeilen auf bestimmten Drucker
Dim wks As Worksheet, strDruckerAktuell
Set wks = ActiveSheet
strDruckerAktuell = Application.ActivePrinter
Application.ActivePrinter = "HP LaserJet P2015 Series PS auf Ne01:" 'Standarddrucker
wks.PageSetup.PrintArea = "A1:" _
& wks.Cells.SpecialCells(xlCellTypeLastCell).Offset(5, 0).Address
wks.PrintOut
' wks.PrintPreview
Application.ActivePrinter = strDruckerAktuell
End Sub
Public Sub Druck_Makro()
Dim lLetzte As Long
Dim lZeile As Long
Dim rZeile As Range
lLetzte = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For lZeile = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
If Application.WorksheetFunction.CountA(Range("A" & lZeile & ":IV" & lZeile)) = 0 Then
If rZeile Is Nothing Then
Set rZeile = Rows(lZeile)
Else
Set rZeile = Union(rZeile, Rows(lZeile))
End If
End If
Next lZeile
If Not rZeile Is Nothing Then rZeile.EntireRow.Hidden = True
Set rZeile = Nothing
lLetzte = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
With ActiveSheet.PageSetup
.PrintArea = "$A$1:$G$" & lLetzte + 5
.PrintGridlines = True
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
ActiveSheet.Rows("1:150").EntireRow.Hidden = False
End Sub
Gruß Peter