Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Druckereinstellungen über Makro wählen

Druckereinstellungen über Makro wählen
Helmut
Liebe Forenuser,
ich habe eine sehr knifflige Aufgabe und weiß nicht weiter.
Wie kann ich folgende Aufgabe mit einem Makro lösen:
Ich habe einen Drucker mit 2 Fächern. In einem Papierfach liegt vorbedrucktes Papier (mit Logo z.B.), im anderen Papierfach liegt unbedrucktes Papier.
Nun möchte ich in Excel ein Tabellenblatt ausdrucken und mit 2 Makrobuttons (Bedruckt, Unbedruckt) im Excel-Sheet auswählen, welches Papier(fach) ich haben möchte. Drücke ich auf den Button „Bedruckt“, soll das Papierfach mit bedrucktem Papier, gewissen Druckereinstellungen und einem speziellen Fußzeilentext genommen werden.
Drücke ich auf den Button „Unbedruckt“, soll das Papierfach mit unbedrucktem Papier, anderen Druckereinstellungen und einem anderen speziellen Fußzeilentext genommen werden.
Klingt echt kompliziert. Weiß jemand wie das zu lösen ist?
Danke im Voraus.
LG, Helmut
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Druckereinstellungen über Makro wählen
25.06.2010 13:33:00
Thomas
Hallo,
nimm das Scenario doch einfach mit dem Makrorekorder auf und weise es dann 2 entsprechenden Schaltflächen zu. Ist denke ich der einfachste Weg.
MfG, Tom
AW: Druckereinstellungen über Makro wählen
25.06.2010 21:14:19
Helmut
hi,
danke mal vorerst. werde versuchen, ob das ausreicht.
lg,
helmut
AW: Druckereinstellungen über Makro wählen
01.07.2010 20:15:35
lupo
Hallo Helmut.
Ich habe mal ein Druckermakro gebaut.
Wie Thomas schon vorschlug, habe ich das auch mit dem Makrorecoder aufgenommen und dann an meine Bedürfnisse angepasst. Unter anderem habe ich einen variablen Druckbereich abhängig vom Wert der Zelle AW 1 eingefügt.
Hier ist das gekürzte Makro:
Sub Drucker()
' Makro1 Makro
' Makro am 20.05.2008 aufgezeichnet
''Blattschutz aufheben'
ActiveSheet.Unprotect "mmd"
With ActiveSheet.PageSetup
.PrintTitleRows = "$1:$4"
.PrintTitleColumns = "$A:$AS"
End With
For Each Zelle In Range("aw1")
If IsNumeric(Zelle.Value) Then
If Zelle.Value = 1 Then
ActiveSheet.PageSetup.PrintArea = "$A$5:$AS$93"
End If
End If
Next
For Each Zelle In Range("aw1")
If IsNumeric(Zelle.Value) Then
If Zelle.Value = 53 Then
ActiveSheet.PageSetup.PrintArea = "$A$785:$AS$798"
End If
End If
Next
'With ActiveSheet.PageSetup
'   .LeftHeader = ""
'  .CenterHeader = ""
'   .RightHeader = "Ausgedruckt am" & Chr(10) & "&D" & Chr(10) & "um" & Chr(10) & "&T" &  _
Chr(10) & ""
'   .LeftFooter = "1.GM " & Chr(10) & "2.SZ" & Chr(10) & "3.Freigabe" & Chr(10) & "4.Runde" _
& Chr(10) & "5.BA" & Chr(10) & "6.WPvorbesp"
'   .CenterFooter = _
'   "7.WPbesp" & Chr(10) & "8.Do Schu" & Chr(10) & "9.PF SiGesp" & Chr(10) & "10.1:1" &  _
Chr(10) & "11.HK RG" & Chr(10) & "12.SAP" & Chr(10) & "16.SV" & Chr(10) & "" & Chr(10) & "" & Chr(10) & ""
'   .RightFooter = _
'   "" & Chr(10) & "Bei Fragen, Anregungen und Fehlern bitte bei *****melden."
'   .LeftMargin = Application.InchesToPoints(0.78740157480315)
'   .RightMargin = Application.InchesToPoints(0.78740157480315)
'   .TopMargin = Application.InchesToPoints(0.984251968503937)
'   .BottomMargin = Application.InchesToPoints(0.984251968503937)
'   .HeaderMargin = Application.InchesToPoints(0.511811023622047)
'   .FooterMargin = Application.InchesToPoints(0.511811023622047)
'  .PrintHeadings = False
'   .PrintGridlines = False
'  .PrintComments = xlPrintNoComments
' .PrintQuality = 600
'  .CenterHorizontally = False
' .CenterVertically = False
'  .Orientation = xlPortrait
'  .Draft = False
'  .PaperSize = xlPaperA4
'  .FirstPageNumber = xlAutomatic
'  .Order = xlDownThenOver
'  .BlackAndWhite = False
'  .Zoom = 51
'End With
'Blatt drucken
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
'Druckbereich wieder auflösen
ActiveSheet.PageSetup.PrintArea = ""
'Blattschutz wieder herstellen'
ActiveSheet.Protect Password:="mmd", DrawingObjects:=False, Contents:=True, Scenarios:= _
True
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Druckereinstellungen über ein Makro auswählen


Schritt-für-Schritt-Anleitung

  1. Makrorekorder aktivieren

    • Öffne dein Excel-Dokument und gehe zu Entwicklertools.
    • Klicke auf Makro aufzeichnen.
  2. Druckereinstellungen vornehmen

    • Wähle die gewünschten Druckeinstellungen für das erste Papierfach (z.B. bedrucktes Papier).
    • Füge die benötigten Fußzeilentexte hinzu.
  3. Aufzeichnung beenden

    • Klicke auf Aufzeichnung beenden.
  4. Schaltflächen erstellen

    • Füge zwei Schaltflächen in dein Arbeitsblatt ein (z.B. "Bedruckt" und "Unbedruckt").
    • Weise jeder Schaltfläche das entsprechende Makro zu.
  5. Makro anpassen

    • Öffne den Visual Basic for Applications (VBA) Editor.
    • Passe das aufgezeichnete Makro an, um die spezifischen Druckeinstellungen für das andere Papierfach (z.B. unbedrucktes Papier) zu definieren.
Sub Druckeinstellungen()
    ' Beispiel für Druckeinstellungen
    With ActiveSheet.PageSetup
        .LeftFooter = "Druck von Sigesp"
        .CenterFooter = "Ausgedruckt am " & Date
        .RightFooter = "Seite " & PageNumber
    End With
End Sub

Häufige Fehler und Lösungen

  • Fehler: Drucker wird nicht erkannt

    • Stelle sicher, dass der Drucker korrekt angeschlossen und eingerichtet ist. Überprüfe die Druckereinstellungen in Windows.
  • Fehler: Makro funktioniert nicht wie gewünscht

    • Überprüfe die Zuweisung der Schaltflächen. Stelle sicher, dass das richtige Makro jeder Schaltfläche zugewiesen ist.
  • Druckeinstellungen werden nicht angewendet

    • Stelle sicher, dass das Makro korrekt die gewünschten Druckeinstellungen für alle Blätter anwendet. Achte darauf, dass der richtige Druckbereich definiert ist.

Alternative Methoden

  • Direkt über die Druckeinstellungen

    • Du kannst die Excel Druckeinstellungen für alle Blätter manuell anpassen, indem du die Registerkarte „Seitenlayout“ verwendest. Diese Methode ist jedoch weniger flexibel als die Verwendung eines Makros.
  • VBA-Skripte

    • Du kannst komplexere VBA-Skripte schreiben, um spezifischere Anforderungen zu erfüllen, beispielsweise das Drucken von bestimmten Bereichen oder das Einfügen von Bedingungen basierend auf Zellwerten.

Praktische Beispiele

  1. Makro für bedrucktes Papier

    Sub DruckBedruckt()
       With ActiveSheet.PageSetup
           .CenterFooter = "Bedrucktes Papier"
           ' Weitere spezifische Druckeinstellungen
       End With
       ActiveSheet.PrintOut
    End Sub
  2. Makro für unbedrucktes Papier

    Sub DruckUnbedruckt()
       With ActiveSheet.PageSetup
           .CenterFooter = "Unbedrucktes Papier"
           ' Weitere spezifische Druckeinstellungen
       End With
       ActiveSheet.PrintOut
    End Sub

Tipps für Profis

  • Nutze Variablen in deinen Makros, um die Druckeinstellungen dynamisch zu gestalten, je nach den Werten in bestimmten Zellen.
  • Halte deine Makros modular, indem du verschiedene Funktionen für unterschiedliche Druckaufgaben schreibst, was die Wartung und Anpassung erleichtert.
  • Berücksichtige die Verwendung von Fehlerbehandlungsroutinen, um sicherzustellen, dass das Makro bei unerwarteten Fehlern nicht abstürzt.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass mein Makro nur für ein bestimmtes Blatt funktioniert?
Du kannst das Makro so anpassen, dass es nur auf ActiveSheet oder auf einen bestimmten Blattnamen verweist, z.B. Sheets("MeinBlatt").PrintOut.

2. Was mache ich, wenn ich mehrere Drucker habe?
Du kannst das Makro so erweitern, dass es den gewünschten Drucker auswählt, indem du die Application.ActivePrinter-Eigenschaft verwendest.

3. Wie kann ich die Druckeinstellungen für alle Blätter anpassen?
Du kannst eine Schleife durch alle Blätter verwenden und die Druckeinstellungen entsprechend anpassen. Beispiel:

For Each sheet In ThisWorkbook.Sheets
    sheet.PageSetup.PrintArea = "A1:B10" ' Beispielbereich
Next sheet

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