Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
832to836
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
832to836
832to836
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Druckereinstellungen über VBA

Druckereinstellungen über VBA
29.12.2006 09:28:43
uwe
Hallo,
ich habe zwei Schaltflächen in ein Tool integriert. Die eine führt eine Druckfunktion aus, in der vorher das Seitenlayout angepasst wird, die andere erstellt eine PDF-Datei.
Zur Erstellung der PDF-Datei muss ich den PDF-Drucker auswählen. Dieser ist für jeden User der gleiche. Möchte ich jedoch das Tool in Excel ausdrucken, muss ich wieder den ursprünglichen Drucker (Standarddrucker) auswählen. Für meinen Fall habe ich den Drucker definiert. Sollte jedoch ein User einen anderen Drucker haben, würde er das Tool auf meinem Drucker ausdrucken.
Gibt es eine Möglichkeit, den Druckernamen nicht fest zu definieren, sondern lediglich anzugeben, dass der jeweilige Standarddrucker auszuwählen ist, den man in der Systemsteuerung/Druckerauswahl als Standard definiert hat?
Anbei das Makro für die PDF-Erstellung:

Sub PDF()
On Error GoTo Ende
Application.ActivePrinter = "eDocPrinter PDF Pro auf Ne02:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"eDocPrinter PDF Pro auf Ne02:", Collate:=True _
Application.ActivePrinter = _
"\\S.....\P...... 402.. 03.OG Raum 309 auf Ne05:" 'hier dürfte dann kein Druckername mehr stehen, sondern das Makro müsste den jeweiligen als Standard definierten Drucker einstellen.
Ende:
End Sub

Ich hoffe, Ihr könnt mir weiterhelfen.
Gruß
Uwe

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Druckereinstellungen über VBA
29.12.2006 09:35:01
yps
hi,
stell dem User doch den vorher eingestellten Drucker wieder zur Verfügung
macht immer einen guten Eindruck die Einstellungen eben NICHT zu verstellen

Sub bla()
Dim Drucker As String
Drucker = Application.ActivePrinter
'dein code
Application.ActivePrinter = Drucker
End Sub

cu Micha
AW: Druckereinstellungen über VBA
29.12.2006 11:37:39
Uwe
Hallo Micha,
vielen Dank für deine Hilfe, aber so richtig verstehe ich das Makro nicht.
Ich habe z.B. 20 verschiedene User, die jeweils für sich verschiedene Standarddrucker definiert haben. Alle User greifen aber nur auf das eine Tool zurück. D.h. es würde nicht ausreichen, wenn ich nach Erstellung der PDF-Datei den Ursprungsdrucker definiere.
Ich müsste also, anders als zu Beginn beschrieben, nicht den Standarddrucker in das Makro der PDF-Erstellung schreiben, sondern in den Druckbefehl, so dass jeder User mit Betätigung der Schaltfläche seinen individuellen Drucker einstellt.
Ich brauche also ein Makro, dass je nach User den Standarddrucker einstellt. Also

Sub drucken
'normaler Druckbefehl aus Excel
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
'stelle den in der Druckereinstellung als Standard definierten Drucker ein
Makro = ?
End Sub

Entschuldige den kleinen Denkfehler, der mir unterlaufen ist. Ich hoffe, dass du mir trotzdem weiterhelfen kannst.
Gruß
Uwe
Anzeige
AW: Druckereinstellungen über VBA
29.12.2006 12:27:30
yps
hi,
sorry, ich weiss auch nach dem 27.mal lesen nicht was du eigentlich machen willst
und was ist für dich ein Standarddrucker ? Wirklich der Standarddrucker aus dem Druckmenü oder der Drucker den der User eingestellt hat(te) ?
Beschreibe mal verbal dein Vorhaben
cu Micha
AW: Druckereinstellungen über VBA
29.12.2006 13:39:33
Uwe
hi,
man kann ja mehrere Drucker eingerichtet haben, muss jedoch einen als Standarddrucker auswählen. Möchte man einen anderen Drucker als den Standarddrucker auswählen, dann muss dieser explizit eingestellt werden. Wird das Programm neu geöffnet stellt sich der Standarddrucker wieder von neuem ein. Die Einstellung des Standarddruckers erfolgt i.d.R. über die Systemsteuerung.
Jeder User, der an einem anderen PC sitzt, kann sich seinen eigenen Drucker (Standarddrucker) einstellen (je nachdem wo er sitzt).
Jeder Drucker hat also einen anderen Namen (z.B. Drucker in Raum 1, Drucker in Raum 2, etc.). Die User benutzen alle zusammen das Tool, welches auf einem zentralen Server bereitgestellt wird und von jedem zugegriffen werden kann. Daher brauche ich ein Makro für die Druckfunktion, das den jeweiligen vom User definierten Drucker einstellt, ohne dass ich einen festen Druckername angeben muss.
Ich hoffe, dass ich etwas verständlicher war.
Gruß
Uwe
Anzeige
AW: Druckereinstellungen über VBA
29.12.2006 14:07:34
yps
hi,
so stellst du den Standarddrucker aus der Systemsteuerung ein:
Option Explicit
Declare

Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" _
(ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize As Long) As Long
Declare 

Function GetProfileSection Lib "kernel32" Alias "GetProfileSectionA" _
(ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long

Function GetDefaultPrinter() As String
Dim TempName As String
Dim DeviceNr As Long
TempName = String(1024, 0)
DeviceNr = GetProfileString("windows", "device", 0&, TempName, 1024)
If DeviceNr > 0 Then
GetDefaultPrinter = Left(TempName, InStr(TempName, ",") - 1)
Else
End Function

End If
End Function


Sub PDF()
On Error GoTo Ende
Application.ActivePrinter = GetDefaultPrinter
Ende:
End Sub

"Declare Function" jeweils hintereinanderschreiben (ist ein Fehler in der Darstellungsweise des Forums
cu Micha
Anzeige
AW: Druckereinstellungen über VBA
29.12.2006 15:02:37
Uwe
Hallo Micha,
ich muss zugeben, dein makro überfordert mich.
Ich habe dein Makro in mein Tool eingestellt und deine Anweisung mit "Declare Function" befolgt. Die Schaltfläche habe ich mit Sub PDF() verknüpft. Ich erhalte jedoch eine Fehlermeldung bzgl. des If-Blocks. Es wird noch ein End if benötigt. Ich konnte leider nicht den Fehler beheben. Ich habe das End if verschoben. Dadurch erhalte ich zwar keine Fehlermeldung mehr, der Standarddrucker wird jedoch auch nicht eingestellt.
Weisst du woran es liegen kann?
Gruß
Uwe
AW: Druckereinstellungen über VBA
29.12.2006 18:00:47
Uwe
Hallo Micha,
ich weiss zwar nicht, was du da gemacht hast, dass werde ich aber noch herausfinden.
Auf jeden Fall funktioniert es einwandfrei.
Vielen Dank für deine Hilfe.
In diesem Sinne wümsche ich dir einen guten Rutsch.
Gruß
Uwe
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen