Microsoft Excel

Excel und VBA: Beitrag aus Herbers Excel-Forumsarchiv

Zwei Seiten auf eine drucken per vba

Betrifft: Zwei Seiten auf eine drucken per vba
von: stefanseevetal
Geschrieben am: 14.11.2009 12:07:56

Hallo zusammen!

Ich habe folgendes Problem:

Ich möchte per Klick auf einen Button zunächst einen Drucker auswählen können, dann sollen jeweils zwei Tabellenblätter (jedes Tabellenblatt hat einen Druckbereich von einer DIN A4-Seite) auf einer Seite ausgedruckt werden. Eigentlich klappt soweit alles (siehe Code unten), mir fehlt nur noch die Sache mit "zwei Tabellenblätter auf eine Seite" drucken. Kann man das auch per VBA vorgeben? Wie müsste der Code lauten?

Danke und Gruß,

Stefanseevetal

Sub SelectPrinter()
   
   Dim sPrinter As String
   Dim i As Integer
   
   sPrinter = Application.ActivePrinter
   Application.Dialogs(xlDialogPrinterSetup).Show
   
   Application.ActivePrinter = sPrinter

    For i = 5 To ThisWorkbook.Sheets.Count
        ThisWorkbook.Sheets(i).PrintOut
    Next i
    
End Sub

  

Betrifft: zwei A4 auf eine?
von: Tino
Geschrieben am: 14.11.2009 12:27:06

Hallo,
wenn Dein Druckbereich schon aus einer DIN A4 Seite besteht,
wie soll dann zwei Seiten auf eine passen?

Sonst könnte es mit einer Hilfstabelle gehen, wo Du die Daten zusammenkopierst und ausdruckst.

Gruß Tino


  

Betrifft: AW: zwei A4 auf eine?
von: stefanseevetal
Geschrieben am: 14.11.2009 13:13:00

Ich habe eine Excel-Datei mit 50 Tabellenblättern, jedes Tabellenblatt enthält einen Beleg. Um Papier zu sparen möchte ich eine Möglichkeit einbauen, wo ich per Klick auf einen Button automatisch 2 Tabellenblätter/Belege auf eine Seite drucke (manuell stelle ich das immer im Druckdialog bei Druckereigenschaften ein). Die Frage ist, ob ich das auch direkt per vba realisieren kann. Ich habe beim printout-Befehl jedenfalls keine Parameter dafür gefunden. Geht es aber vielleicht trotzdem, das per vba zu realisieren?

Danke und Gruß,
Stefanseevetal


  

Betrifft: mit Makrorekorder
von: Tino
Geschrieben am: 14.11.2009 13:45:29

Hallo,
dafür müsstest Du die Tabellen auswählen und diese danach Drucken, einzeln geht dies nicht.

Mein Makrorekorder spuckt diese Zeilen aus.

   Sheets(Array("Tabelle1", "Tabelle3")).Select
   ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"

Also Tabellen in einem Array sammeln auswählen und Drucken.

Gruß Tino