Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Papierformat mit Makro einstellen

Forumthread: Papierformat mit Makro einstellen

Papierformat mit Makro einstellen
29.03.2020 12:25:44
Herbert
Hallo,
kann mir bitte jemand sagen, ob und wenn ja wie man das Papierformat mit VBA festlegen kann?
Userbild
Servus
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Makrorecorder benutzen
29.03.2020 12:40:16
onur
AW: Makrorecorder benutzen
29.03.2020 12:45:03
Herbert
Logisch, dass ich den schon benutzt habe. Doch da finde ich nix! Findest Du da was?
Sub Makro4()
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
Application.PrintCommunication = True
ActiveSheet.PageSetup.PrintArea = "$A$1:$F$10"
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 300
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = 132
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = False
.EvenPage.LeftHeader.Text = ""
.EvenPage.CenterHeader.Text = ""
.EvenPage.RightHeader.Text = ""
.EvenPage.LeftFooter.Text = ""
.EvenPage.CenterFooter.Text = ""
.EvenPage.RightFooter.Text = ""
.FirstPage.LeftHeader.Text = ""
.FirstPage.CenterHeader.Text = ""
.FirstPage.RightHeader.Text = ""
.FirstPage.LeftFooter.Text = ""
.FirstPage.CenterFooter.Text = ""
.FirstPage.RightFooter.Text = ""
End With
Application.PrintCommunication = True
End Sub

Anzeige
AW: Makrorecorder benutzen
29.03.2020 12:50:18
onur
Verstehe ich nicht.
"Doch da finde ich nix" - Was suchst du denn?
Wenn das aufgezeichnete Makro das selbe macht, was du beim Aufzeichnen gemacht hast, ist doch Alles OK.
AW: Makrorecorder benutzen
29.03.2020 12:53:39
Herbert
Ich möchte aus der Papierformat-Liste den "99014 Shipping" auswählen. Und das zeichnet er eben nicht auf!
AW: Makrorecorder benutzen
29.03.2020 12:58:28
onur
Das ist doch nur eine interne Bezeichnung deines Druckertreibers - was dem Drucker an genauen Befehlen geschickt wird, muss nicht diese Bezeichnung enthalten, schliesslich hat VBA bzw Windows nicht für jeden Druckertyp auf der Welt einen eigenen Befehlssatz - den Rest macht der Druckertreiber.
Vielleicht hiermit:
.Orientation = xlLandscape
.Draft = False
.PaperSize = 132
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100

Anzeige
AW: Makrorecorder benutzen
29.03.2020 13:22:17
Herbert
Danke, das muss ich am Nachmittag mal probieren.
AW: Makrorecorder benutzen
29.03.2020 12:45:12
Herbert
Logisch, dass ich den schon benutzt habe. Doch da finde ich nix! Findest Du da was?
Sub Makro4()
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
Application.PrintCommunication = True
ActiveSheet.PageSetup.PrintArea = "$A$1:$F$10"
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 300
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = 132
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = False
.EvenPage.LeftHeader.Text = ""
.EvenPage.CenterHeader.Text = ""
.EvenPage.RightHeader.Text = ""
.EvenPage.LeftFooter.Text = ""
.EvenPage.CenterFooter.Text = ""
.EvenPage.RightFooter.Text = ""
.FirstPage.LeftHeader.Text = ""
.FirstPage.CenterHeader.Text = ""
.FirstPage.RightHeader.Text = ""
.FirstPage.LeftFooter.Text = ""
.FirstPage.CenterFooter.Text = ""
.FirstPage.RightFooter.Text = ""
End With
Application.PrintCommunication = True
End Sub

Anzeige
AW: Papierformat ist abhängig vom Drucker
29.03.2020 12:55:43
EtoPHG
Hallo Herbert,
Das kannst Du nicht via Aufzeichnung oder VBA festlegen.
Die verfügbaren Papierformate sind abhängig vom gewählten Drucker und nicht irgendwo in Excel vorgegeben.
Wenn schon müsstest du eine API-Schnittstelle zum Drucker einsetzen, sofern eine solche verhanden ist.
Gruess Hansueli
Anzeige
AW: Papierformat ist abhängig vom Drucker
29.03.2020 13:24:58
Herbert
Hallo Hansueli,
vielen Dank für Deine Antwort. Das ist das, was ich befürchtet habe. Aber nun weiß ich wenigstens Bescheid! Hoffe Ihr seid gesund und Corona-frei! Schönen Sonntag noch!
Servus und Grüetzi in die Schweiz
;
Anzeige
Anzeige

Infobox / Tutorial

Papierformat mit Makro einstellen


Schritt-für-Schritt-Anleitung

Um das Papierformat in Excel mit einem Makro zu ändern, kannst du den folgenden VBA-Code verwenden. Dieser Code setzt die Druckeinstellungen für das aktive Blatt:

Sub Makro4()
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .PrintTitleRows = ""
        .PrintTitleColumns = ""
        .PrintArea = "$A$1:$F$10"
        .LeftMargin = Application.InchesToPoints(0)
        .RightMargin = Application.InchesToPoints(0)
        .TopMargin = Application.InchesToPoints(0)
        .BottomMargin = Application.InchesToPoints(0)
        .Orientation = xlLandscape
        .PaperSize = 132 ' Hier das gewünschte Papierformat anpassen
        .Zoom = 100
    End With
    Application.PrintCommunication = True
End Sub

Um das Makro zu verwenden, öffne den VBA-Editor (Alt + F11), füge ein neues Modul hinzu und kopiere den obenstehenden Code hinein. Achte darauf, dass du die PaperSize entsprechend dem gewünschten Format anpasst.


Häufige Fehler und Lösungen

Fehler: Das gewünschte Papierformat wird nicht aufgezeichnet.

Lösung: Die verfügbaren Papierformate sind abhängig vom gewählten Drucker. VBA kann nur die Formate steuern, die der Druckertreiber bereitstellt. Stelle sicher, dass du den richtigen Drucker in den Druckeinstellungen ausgewählt hast.


Alternative Methoden

Wenn du das Papierformat nicht über ein Makro einstellen kannst, gibt es alternative Methoden:

  1. Manuelles Ändern der Druckeinstellungen:

    • Gehe zu "Seitenlayout" in der Excel-Menüleiste.
    • Klicke auf "Seite einrichten" und wähle das gewünschte Papierformat aus.
  2. Druckervoreinstellungen:

    • Du kannst auch die Druckereinstellungen direkt im Druckdialog ändern, bevor du druckst.

Praktische Beispiele

Hier sind einige Beispiele für verschiedene Papierformate, die du in deinem Makro verwenden kannst:

  • A4: Setze .PaperSize = 9
  • A3: Setze .PaperSize = 8
  • Benutzerdefiniertes Format: Dies erfordert möglicherweise eine spezifische API-Schnittstelle und ist nicht über VBA festlegbar.

Achte darauf, dass die Papierformate, die du in deinem Makro verwendest, tatsächlich vom Drucker unterstützt werden.


Tipps für Profis

  • Nutze die PrintCommunication-Eigenschaft, um die Kommunikation mit dem Drucker während der Code-Ausführung zu steuern. Das verhindert, dass Excel während des Setzens der Druckoptionen unnötige Anfragen an den Drucker sendet.
  • Teste dein Makro mit verschiedenen Druckern, um sicherzustellen, dass die richtigen Papierformate verfügbar sind.
  • Halte Excel und die Druckertreiber aktuell, um Kompatibilitätsprobleme zu vermeiden.

FAQ: Häufige Fragen

1. Kann ich das Papierformat für jeden Drucker festlegen?
Nein, die verfügbaren Papierformate hängen vom jeweiligen Druckertreiber ab. Du kannst nur die Formate einstellen, die der Drucker unterstützt.

2. Wie kann ich die Blattgröße in Excel ändern?
Du kannst die Blattgröße über die Seitenlayout-Optionen in Excel ändern oder ein Makro verwenden, um dies automatisch zu tun.

3. Was ist Application.PrintCommunication?
Diese Eigenschaft steuert, ob Excel mit dem Drucker kommuniziert. Wenn du diese auf False setzt, kannst du mehrere Druckeinstellungen ändern, ohne dass der Drucker unnötig angefragt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige