Druck Dialog automatisch 3 mal Drucken

!NeXT

Cadet 3rd Year
Dabei seit
Nov. 2015
Beiträge
57
#1
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? ;)
 
Dabei seit
Nov. 2013
Beiträge
5.435
#2
Nö, geht nicht ! Kannst die drei Ausdrucke ja aber über eine Batch-Datei realisieren.
 
Dabei seit
Apr. 2018
Beiträge
141
#4
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.
 
Dabei seit
Apr. 2012
Beiträge
7.786
#7
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
 

!NeXT

Cadet 3rd Year
Ersteller dieses Themas
Dabei seit
Nov. 2015
Beiträge
57
#8
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?)
 
Dabei seit
Apr. 2018
Beiträge
141
#9
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.
 

!NeXT

Cadet 3rd Year
Ersteller dieses Themas
Dabei seit
Nov. 2015
Beiträge
57
#10
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
 

halwe

Lieutenant
Dabei seit
Jan. 2007
Beiträge
698
#11
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.
 
Dabei seit
Apr. 2018
Beiträge
141
#12
<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)

halwe

Lieutenant
Dabei seit
Jan. 2007
Beiträge
698
#13
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.
 

!NeXT

Cadet 3rd Year
Ersteller dieses Themas
Dabei seit
Nov. 2015
Beiträge
57
#14
Ich schau mir das heute Abend direkt mal an.
Natürlich dann lieber auf meinem Privatrechner :daumen:
Danke im Voraus. :)
 
Dabei seit
Apr. 2018
Beiträge
141
#20
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)
Top