279 Aufrufe
Gefragt in Tabellenkalkulation von jojo1978 Einsteiger_in (59 Punkte)

Hallo VBA Profis,

ich möchte mehrere Tabellenblätter auf einmal drucken. Der Druckbereich soll im Makro festgelegt werden und die Anzahl der Ausdrucke soll aus Tabellenblatt ausgelesen werden

Tabellenblatt "neu" drucken:

Unter Tabellenblatt "Steuerung" Zelle !I16! steht die Anzahl wie oft gedruckt werden soll, der Druckbereich soll B1 bis J44 sein. der Ausdruck soll aus einer Seite erfolgen

für 

Tabellenblatt "neu (1)" drucken:

Unter Tabellenblatt "Steuerung" Zelle !I17! steht die Anzahl wie oft gedruckt werden soll, der Druckbereich soll B1 bis J44 sein. der Ausdruck soll aus einer Seite erfolgen

Ich stell mir das etwa so vor:

Sub MakroDruckbus()

Sheets("neu").PrintArea = "$B$1:$J$44" .PrintOut Copies:= (soll aus Tabellenblatt "Steuerung Zelle "I16! gelesen werden

Sheets("neu (1)").PrintArea = "$B$1:$J$44" .PrintOut Copies:= (soll aus Tabellenblatt "Steuerung Zelle "I17! gelesen werden

Sheets("neu (2)").PrintArea = "$B$1:$J$44" .PrintOut Copies:= (soll aus Tabellenblatt "Steuerung Zelle "I18! gelesen werden

End Sub

 

Kann mir jemand bei dem Makro helfen, bin leider ein Profi.

Vielen Dank

Grüße jojo

4 Antworten

+1 Punkt
Beantwortet von m-o Profi (22.8k Punkte)

Hallo Jojo,

versuch es mal mit dem folgenden Code:

Sub drucken()

'Tabellenblatt auswählen
With ThisWorkbook.Worksheets("neu")
.PageSetup.PrintArea = "$B$1:$J$44"   'Druckbereich festlegen
.PrintOut Copies:=ThisWorkbook.Worksheets("Steuerung").Range("I16").Value           'Ausdrucken mit Anzahl
End With

'Tabellenblatt auswählen
With ThisWorkbook.Worksheets("neu1")
.PageSetup.PrintArea = "$B$1:$J$44"   'Druckbereich festlegen
.PrintOut Copies:=ThisWorkbook.Worksheets("Steuerung").Range("I17").Value           'Ausdrucken mit Anzahl
End With

End Sub

Für die übrigen Blätter kannst du den Code entsprechend ergänzen.

Gruß

M.O.

0 Punkte
Beantwortet von jojo1978 Einsteiger_in (59 Punkte)
Hallo M-O,

Dankeschön funktioniert soweit. Doch ich möchte das der Ausdruck auf einer Seite erfolgt. Kann man diese noch umsetzen? Alternative das Programm den Druckbereich selbst festlegt.
Ich lese die Arbeitsblätter zuvor aus einem Ordner in meine Arbeitsblätter ein. Da ist zwar ein Druckbereich schon eingestellt jedoch verschiebt es diesen beim einlesen.

Hast du eine Lösung für mich?
Danke
Grüße jojo
+1 Punkt
Beantwortet von m-o Profi (22.8k Punkte)

Hallo jojo,

so erfolgt der Ausdruck der jeweiligen Blätter auf einer Seite:

Sub drucken()

'Tabellenblatt auswählen
With ThisWorkbook.Worksheets("neu")
 With .PageSetup
  'Druckbereich festlegen
  .PrintArea = "$B$1:$J$44"
  'Druckbereich auf einer Seite ausdrucken
  .Zoom = False
  .FitToPagesWide = 1
  .FitToPagesTall = 1
 End With
.PrintOut Copies:=ThisWorkbook.Worksheets("Steuerung").Range("I16").Value 'Ausdruck mit Anzahl
End With

'Tabellenblatt auswählen
With ThisWorkbook.Worksheets("neu1")
 With .PageSetup
  .PrintArea = "$B$1:$J$44"
  .Zoom = False
  .FitToPagesWide = 1
  .FitToPagesTall = 1
 End With
.PrintOut Copies:=ThisWorkbook.Worksheets("Steuerung").Range("I17").Value
End With

End Sub


Gruß

M.O.

0 Punkte
Beantwortet von jojo1978 Einsteiger_in (59 Punkte)
Hallo,

Danke für deine hilfe. Hat mir sehr weiter geholfen.

Grüße jojo
...