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
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen