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

Druckerauswahl über Makro

Forumthread: Druckerauswahl über Makro

Druckerauswahl über Makro
Heike
Hallo,
ich habe gesamt 4 Drucker, die ich über 4 Symbole anwählen möchte.
HP1, HP2, HP3, Hp4 wobei HP2 immer der Standarddrucker sein soll. Die Drucker sind lokal installiert.
Folgenden Code habe ich mir zusammengebastelt, aber als nicht VBA-Kennerin, funktioniert er nicht.
Kann mir jemand helfen? Wäre toll und danke schön.
Sub HP1()
'Hier den aktiven Drucker festlegen:
Application.ActivePrinter = "HP1" 'Hier gehört der Druckername rein
'Druckmenü aufrufen:
Application.Dialogs(xlDialogPrinter).Show  'wird aber nicht zum Standarddrucker, also den  _
wieder auswählen:
ActivePrinter = "HP2"
End Sub
Gruß Heike
Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Lösung gefunden
20.11.2011 16:43:59
Heike
Hallo,
ich zeichne jede Druckerauswahl mit dem Makrorekorder auf, und weise dem Makro ein Symbol zu. Ist zwar Fleißarbeit, funktioniert aber.
Wünsche allen einen schönen Sonntagabend.
Gruß
Heike
AW: Lösung gefunden
20.11.2011 16:50:22
Dieter(Drummer)
Hi Heike,
wollte dir gerade diese Lösung zeigen, sieht dann in etwa so aus:
Hier mal eine Musterzeile:
...
  • Application.ActivePrinter = "EPSON Stylus DX4400 Series auf Ne04:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

  • ...
    Gruß, Dieter(Drummer)
    Anzeige
    Druckmenü anzeigen?
    20.11.2011 16:55:53
    Heike
    Hallo Dieter(Drummer),
    ja genau, sieht bei mir auch so aus, vielen Dank.
    Kannst du mir sagen, wie ich in das aufgezeichnete Makro noch das Dialogfeld für das Druckermenü einbinden muss? Da ich immer unterschiedliche Kopieanzahlen habe.
    Also dieser Befehl (habe ich zumindest hier recherchiert: Application.Dialogs(xlDialogPrinter).Show
    Wäre super, Danke für evtl. Hilfe.
    Gruß
    Heike
    Anzeige
    AW: @Heike, hab mal gegoogelt ...
    20.11.2011 17:17:48
    Dieter(Drummer)
    ... Printermenü zeigen:
  • Application.Dialogs(xlDialogPrint).Show
  • .
    Gruß, Dieter(Drummer)
    Anzeige
    AW: Druckmenü anzeigen?
    20.11.2011 17:25:13
    Dieter(Drummer)
    Hi Heike,
    bin nicht der VBA Könner. Es sieht dann wohl so aus:
  • Application.Dialogs(xlDialogPrint).Show
    Application.ActivePrinter = "EPSON Stylus DX4400 Series auf Ne04:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

  • Gruß, Dieter(Drummer)
    Ein 'Hobby-VBAler' muss ja nun nicht alles ...
    20.11.2011 17:53:15
    Luc:-?
    …gleich gut und das noch auf Anhieb können, Dieter,
    man kann sich ja auch auf etwas spezialisieren; alles andere macht man dann je nach Bedarf… ;-)
    Gruß Luc :-?
    Anzeige
    AW: ... sehe ich aus so Luc:-? ...
    20.11.2011 17:58:47
    Dieter(Drummer)
    ... und helfe nach meinen Möglichkeiten, da ich auch oft gut, qualifizierte Hilfe hier im Forum erhalten habe.
    Gruß, Dieter(Drummer)
    AW:Dieter.....
    21.11.2011 08:38:22
    hary
    Moin Dieter
    ....dafuer hast Du aber ("sehr gute") schlagende Argumente. ;-))
    Vorschlag: Drumset mit VBA aus dem Publkum steuern. LOL
    gruss hary
    Anzeige
    Passt leider nicht
    20.11.2011 18:16:54
    Heike
    Erst einmal vielen Dank für deine Hilfe, nur passt das leider nicht.
    Sub HP1_Schwarz_DRUCK()
    Application.Dialogs(xlDialogPrint).Show
    Application.ActivePrinter = "HP1_Schwarz_DRUCK auf Ne07:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
    "HP1_Schwarz_DRUCK auf Ne07:", collate:=True
    End Sub
    
    Dieses Makro habe ich gesamt 4x (HP2, HP3, HP4), er zeigt mir zwar das Druckmenü aber 1. druckt er, auch wenn ich auf Abbrechen klicke und 2. nimmt er immer als Drucker den zuletzt ausgewählten.
    Vielleicht noch eine Idee?
    Vielen Dank.
    Gruß Heike
    Anzeige
    AW: Passt leider nicht
    20.11.2011 18:30:03
    Dieter(Drummer)
    Heike,
    ich gehe mal davon aus, dass Du verschiedene Drucker mit einem entsprechenden Button ausdrucken möchtest.
    Du müsstest ein Makro haben, dass den jeweiligen Drucker wählt und dir ZUSÄTZLICH die Möglichkeit bietet, die Anzahl Druckseiten anzugeben. Den Sinn das Druckmenü noch vorher zu zeigen ist mir nicht klar, wenn nur noch optional die Menge Druckseiten dazu gewählt werden soll.
    Sorry, hier muss ich passen, da meine VBA Kenntnis unzureichend ist. Hier können dir nur die Spezialisten aus dem Forum weiter helfen.
    Gruß, Dieter(Drummer)
    Anzeige
    AW: Passt leider nicht
    20.11.2011 18:53:34
    Heike
    Hey Dieter,
    soweit habe ich es hingekriegt. Ich habe einfach die beiden "Application"-Sätze getauscht ;-)
    Also erst den Printer dann das "Show".
    Vielleicht hat ja noch jemand eine Idee, wie ich das Dialogfenster "Abbrechen" kann. Denn wenn ich auf Abbrechen klicke, druckt er trotzdem.
    Vielen Dank, vor allem die Dieter
    Gruß
    Heike
    Anzeige
    Jetzt passt es!
    20.11.2011 19:45:58
    Heike
    Hallo,
    so, nach viel tüffteln habe ich es jetzt raus :-)
    Sub HP1_Schwarz_DRUCK()
    Application.ActivePrinter = "HP1_Schwarz_DRUCK auf Ne04:"
    Application.Dialogs(xlDialogPrint).Show
    ActivePrinter = "HP1_Schwarz_DRUCK auf Ne04:"
    End Sub
    

    AW: Freut mich ...
    20.11.2011 22:11:07
    Dieter(Drummer)
    ... Heike, dass Du eine Lösung gefunden hast.
    Noch einen schönen Restabend.
    Gruß, Dieter(Drummer)
    Anzeige
    AW: @Heike ... Hauptprinter
    21.11.2011 09:50:19
    Dieter(Drummer)
    Guten Morgen Heike,
    mir ist noch aufgefallen, dass Du mit deinem nun fertigen Makro - hier "
    
    ActivePrinter ="HP1_Schwarz_DRUCK auf Ne04:
    
    (vorletzte Zeile in deinem Makro) bleibt dieser Printer auch als aktiver Printer in deinem Druckmenü stehen.
    Wenn Du grundsätzlich den "Haupt.Printer" wieder im Druckmenü als Name stehen haben willst, _ musst Du noch eine Zeile hinzufügen, z.B.
    
    ActivePrinter = "HP?_Schwarz_DRUCK auf Ne00:
    
    Den Druckernamen und "Ne00" musst Du natürlich nach deinem Haupdrucker einsetzen.
    Gruß und einen sonnigen Tag
    Dieter(Drummer)
    Anzeige
    ;

    Forumthreads zu verwandten Themen

    Anzeige
    Anzeige
    Entdecke relevante Threads

    Schau dir verwandte Threads basierend auf dem aktuellen Thema an

    Alle relevanten Threads mit Inhaltsvorschau entdecken
    Anzeige

    Infobox / Tutorial

    Druckerauswahl über Makro in Excel


    Schritt-für-Schritt-Anleitung

    Um ein Excel-Makro zu erstellen, das die Druckerauswahl ermöglicht, folge diesen Schritten:

    1. Öffne Excel und drücke Alt + F11, um den VBA-Editor zu öffnen.

    2. Erstelle ein neues Modul:

      • Klicke im Menü auf Einfügen und wähle Modul.
    3. Füge den folgenden Code ein, um die Druckerauswahl zu ermöglichen:

      Sub DruckerAuswahl()
         ' Wähle den gewünschten Drucker aus
         Application.ActivePrinter = "Dein_Druckername auf Ne04:"
         ' Zeige das Druckdialogfenster an
         Application.Dialogs(xlDialogPrint).Show
      End Sub

      Ersetze "Dein_Druckername" durch den Namen des Druckers, den Du verwenden möchtest.

    4. Speichere und schließe den VBA-Editor.

    5. Füge einen Button in Excel hinzu, um das Makro auszuführen:

      • Gehe zu Entwicklertools > Einfügen > Button.
      • Weisen das DruckerAuswahl-Makro dem Button zu.

    Häufige Fehler und Lösungen

    • Der Drucker wird nicht gefunden:

      • Überprüfe den Druckernamen auf Tippfehler und stelle sicher, dass der Drucker lokal installiert ist.
    • Das Druckmenü zeigt den falschen Drucker an:

      • Stelle sicher, dass die Zeile Application.ActivePrinter vor dem Dialogfeld Application.Dialogs(xlDialogPrint).Show steht.
    • Druckvorgang wird auch bei Abbrechen ausgeführt:

      • Stelle sicher, dass die Zeilen in der richtigen Reihenfolge sind und teste das Makro erneut.

    Alternative Methoden

    Eine Alternative zur Verwendung von Makros ist die Nutzung von Excel's integrierten Druckoptionen. Du kannst auch die Excel Hardcopy-Funktion nutzen, um Dokumente direkt in den Drucker zu senden. Über das Menü Datei > Drucken kannst Du die Druckerauswahl manuell vornehmen.


    Praktische Beispiele

    Hier sind einige Beispiele für Makros, die verschiedene Drucker auswählen:

    1. Drucker HP1:

      Sub HP1_Drucken()
         Application.ActivePrinter = "HP1 auf Ne04:"
         Application.Dialogs(xlDialogPrint).Show
      End Sub
    2. Drucker HP2:

      Sub HP2_Drucken()
         Application.ActivePrinter = "HP2 auf Ne04:"
         Application.Dialogs(xlDialogPrint).Show
      End Sub

    Du kannst diese Beispiele in einem Modul hinzufügen und die Namen der Drucker entsprechend anpassen.


    Tipps für Profis

    • Druckerauswahl optimieren: Nutze eine Dropdown-Liste in Excel, um die Drucker auszuwählen, und führe den Druck basierend auf der Auswahl durch.

    • VBA-Funktionen erweitern: Du kannst den Code erweitern, um die Anzahl der Kopien und weitere Druckoptionen anzupassen.

    • Fehlerbehandlung einfügen: Füge On Error Resume Next und On Error GoTo 0 hinzu, um Fehler bei der Druckerauswahl zu behandeln.


    FAQ: Häufige Fragen

    1. Wie kann ich mehrere Drucker in einem Makro auswählen?
    Du kannst mehrere Subroutinen erstellen, die jeweils einen Drucker auswählen und das Druckdialogfeld anzeigen.

    2. Was mache ich, wenn das Druckmenü nicht angezeigt wird?
    Überprüfe, ob die Zeile Application.Dialogs(xlDialogPrint).Show korrekt in deinem Code platziert ist.

    3. Ist VBA erforderlich, um Drucker auszuwählen?
    Ja, um spezifische Drucker über ein Makro auszuwählen, ist VBA erforderlich. Die Standarddruckeroption in Excel erfordert keine Programmierung.

    4. Wie kann ich den Standarddrucker in VBA setzen?
    Verwende Application.ActivePrinter = "Druckername", um den aktiven Drucker auf den gewünschten Drucker zu setzen.

    5. Welche Excel-Version benötige ich für VBA?
    VBA ist in den meisten Excel-Versionen verfügbar, einschließlich Excel 2010, 2013, 2016, 2019 und Microsoft 365.

    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