Druck Dialog automatisch 3 mal Drucken

!NeXT

Cadet 4th Year
Registriert
Nov. 2015
Beiträge
98
Hallo CB Community :)
Kurze Frage, kann man in dem folgenden Druckdialog automatisch eine 3 stehen haben?
Unbenannt.JPG

Ich möchte immer dieses Fenster angezeigt bekommen, damit sich der jeweilige Nutzer den Drucker aussuchen kann. Die Funktion ...

Code:
ActiveWindow.SelectedSheets.PrintOut Copies:=3, Collate:=True, _
IgnorePrintAreas:=False

... Würde mir in dem Fall nicht weiterhelfen.

Habt ihr ne Idee? ;)
 
Nö, geht nicht ! Kannst die drei Ausdrucke ja aber über eine Batch-Datei realisieren.
 
Von welchem Programm reden wir hier?
 
Vielleicht ueber Sendkeys.
Davon habe ich aber keine Ahnung und habs auch spontan nicht hinbekommen.
Wenn ich den Druckdiualog ueber "Application.Dialogs(xlDialogPrint).Show" aufrufe, greift Sendkey nicht.
Und ueber STRG + P komm ich nicht in das "Exemplar"-Eingabefeld.
 
Ich habe mir für solche Fälle die Fensterpflege programmiert. Die hilft programmübergreifend.
 
  • Gefällt mir
Reaktionen: Old Knitterhemd und areiland
Ich möchte immer dieses Fenster angezeigt bekommen, damit sich der jeweilige Nutzer den Drucker aussuchen kann.
Da du am System-Druckdialog spielen willst kann nur die Idee cartridge_case greifen.

Sofern du dich mit UserForms (der Form wegen ;)) bei den Usern durchsetzen kannst sollten die UserForms alles einsammeln können was VBA dann seinerseits abschickt.

CN8
 
cartridge_case schrieb:
Man könnte ganz einfach in den jeweiligen Druckern eine Kopienanzahl von drei einstellen.
Es soll ja nicht jeder Druckvorgag automatisch 3 mal gedruckt werden. Das würde mir nicht weiterhelfen.
Ergänzung ()

Mir ist mal aufgefallen, dass sobald ich den Druckdialog öffne (STRG P) der Cursor immer automatisch auf "Kopien" steht. Kann man jetzt nicht per VBA immer sobald man den Dislog öffnet eine 3 Schreiben? (Als ob ich die 3 per Tastatur drücke?)
 
Das ist das, was ich in meinem vorherigen Beitrag mit Sendkeys meinte.
Und wenn bei dir bei "STRG + P" das richtige Feld aktiv ist, dann ist die Loesung auch noch Versionsabhaengig.
Bei mir (O365) ist dies nicht der Fall.
 
  • Gefällt mir
Reaktionen: !NeXT
Scientist schrieb:
Das ist das, was ich in meinem vorherigen Beitrag mit Sendkeys meinte.
Und wenn bei dir bei "STRG + P" das richtige Feld aktiv ist, dann ist die Loesung auch noch Versionsabhaengig.
Bei mir (O365) ist dies nicht der Fall.
Ups! Das kann durchaus daran liegen, dass ich STRG P gar nicht nutze. Sondern das hier im VBA
Code:
Application.Dialogs(xlDialogPrint).Show
Ich nutze auch O365
 
!NeXT schrieb:
Mir ist mal aufgefallen, dass sobald ich den Druckdialog öffne (STRG P) der Cursor immer automatisch auf "Kopien" steht. Kann man jetzt nicht per VBA immer sobald man den Dislog öffnet eine 3 Schreiben? (Als ob ich die 3 per Tastatur drücke?)
Genau das kann meine Fensterpflege. Dabei kann man dann eine Abhängigkeit zum vorherigen Fenster (z. B. Dateiname) herstellen.
 
<Offtopic>
Da es relative viele arglose Internetnutzer gibt vielleicht mal ein Hinweis:
(Damit moechte ich halwe nichts unterstellen)

Man sollte immer vorsichtig beim Herunterladen und Ausfuehren von Dateien sein,
vor allem wenn diese aus weniger vertrauenswuerdigen Quellen stammen (unbekannte Privatperson).
Man kann nie wissen was diese machen.
Gleiches gilt auch fuer Dateien die Skripte jeglicher Art ausfuehren koennen (Exceldateien mit Makros, Batch-Skripte, usw.).
Wenn man das Ganze nicht nur auf den privaten Bereich beschraenkt, kann man mal auch schnell eine Firma lahmlegen.

</Offtopic>
 
Zuletzt bearbeitet: (Typo)
Sehe ich übrigens genauso wie Scientist. Ich habe zwar in der ReadMe von "Fensterpflege" klargestellt, dass dieses Programm keinerlei schädliche oder unerwartete Funktionen auslöst, die einzige Internetverbindung ist der Aufruf einer Seite mit der SENDKEYS-Hilfe von AHK aus dem Hilfetext heraus, aber richtig, dem darf man im Zweifelsfall nicht vertrauen.
Deshalb empfehle ich, zumindest wenn's auf einem Firmenrechner laufen soll und man absolute Sicherheit braucht, Autohotkey als Programmierumgebung zu installieren und bei mir das Programm per PN als Quelltext anzufordern. Der ist übersichtlich geschrieben und lässt sich kontrollieren, bevor er gestartet wird.
Unabhängig davon sollte das Lesen der Readme (pdf) und das Ausprobieren auf einem Privatrechner kein größeres Problem darstellen.
Ich selbst stell das Teil hier auch nur ein, weil ich selbst lange vergeblich nach so einem Tool gesucht habe.
 
  • Gefällt mir
Reaktionen: Scientist
Ich schau mir das heute Abend direkt mal an.
Natürlich dann lieber auf meinem Privatrechner :daumen:
Danke im Voraus. :)
 
cartridge_case schrieb:
Nicht? So klang es. Wann denn nicht?
Es soll jeder Druckauftrag ganz normal gedruckt werden. Z.B. ein Brief den man in Word geschrieben hat. Die 3 Kopie sollen eigentlich nur in dem Excel Blatt funktionieren.
 
Code:
Sub drucken()
    ' Soße: http://www.herber.de/forum/archiv/1052to1056/1053323_vorhandere_Drucker_auflisten.html
    Dim drucker_aktiv As String
    drucker_aktiv = Application.ActivePrinter       ' aktuellen Drucker auslesen
    Application.Dialogs(xlDialogPrinterSetup).Show  ' neuen Drucker auswaehlen und aktiv setzen
    ActiveSheet.PrintOut Copies:=3, preview:=False  ' 3 Exemplare drucken
    Application.ActivePrinter = drucker_aktiv       ' Drucker wieder zuruecksetzen
End Sub


EDIT:
Weil mir die permanente Auswahl auf den **** gehen wuerde:
Code:
Sub drucken2()
    ' Soße: http://www.herber.de/forum/archiv/1052to1056/1053323_vorhandere_Drucker_auflisten.html
    Dim drucker_aktiv, drucker_optio As String
   
    drucker_optio = "Microsoft Print to PDF"            ' dauerhaft ausgewaehlter Drucker
    drucker_aktiv = Application.ActivePrinter           ' aktuellen Drucker auslesen
   
    If Not drucker_optio = "" Then                      ' Wenn Drucker voreingestellt, suche Drucker; Ansonsten Auswahlmenue anzeigen
   
        For i = 0 To 9                                  ' Schleife ueber alle Ne-Kanaele, um den korrekten zu finden.
            On Error Resume Next
                Application.ActivePrinter = drucker_optio & " auf Ne0" & i & ":"
        Next i
    Else
   
        Application.Dialogs(xlDialogPrinterSetup).Show  ' neuen Drucker auswaehlen und aktiv setzen
    End If
   
    ActiveSheet.PrintOut Copies:=3, preview:=False      ' 3 Exemplare vom aktiven Blatt drucken
    Application.ActivePrinter = drucker_aktiv           ' Drucker wieder zuruecksetzen
   
End Sub
"drucker_optio" wuerde ich dann natuerlich auf eine Zelle verweisen, die den optionalen Druckernamen enthaelt.
 
Zuletzt bearbeitet: (Version2 hinzugefuegt)
Zurück
Oben