Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1356to1360
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
Inhaltsverzeichnis

Makro einen bestimmten Drucker zuordnen?

Makro einen bestimmten Drucker zuordnen?
03.05.2014 11:37:49
jonas
Servus Leute,
ich hab ein kleines Problem und hoffe jemand kann mir helfen.
Ich habe ein Makro mit dem ich einen Druckbereich drucken möchte, allerdings habe ich zwei unterschiedliche Drucker. Wenn ich auf das Makro klicke, wird immer der Standartdrucker ausgewählt, ich bräuchte aber den anderen.
Wie muss ich den Code schreiben damit das Funktioniert?
Standartdrucker: Lexmark Universal XL
Drucker der angesteuert werden soll: Epson LQ 680 ESC/ P 2
Der derzeitige Code sieht so aus:
Sub Privatwäsche15()
' Privatwäsche15 Makro
Range("A3:C31").Select
ActiveSheet.PageSetup.PrintArea = "$A$3:$C$31"
End Sub

Vielen Dank im Voraus!

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro einen bestimmten Drucker zuordnen?
03.05.2014 11:43:10
Hajo_Zi

Option Explicit
Sub Faxen()
Dim savPrinter As String
savPrinter = ActivePrinter      ' aktuellen Drucker auslesen
ActivePrinter = "WinFax Pro 9.0"    ' anderen Drucker einstellen
ActiveSheet.PrintOut
ActivePrinter = savPrinter              ' Drucker wieder zurückstellen
End Sub

AW: Makro einen bestimmten Drucker zuordnen?
03.05.2014 12:20:15
jonas
Hey danke für die schnelle Antwort Hajo_Zi.
Muss ich den Code durch deinen ersetzten oder hinzufügen?
Wie und wo lese ich den Drucker aus?
mfg

AW: Makro einen bestimmten Drucker zuordnen?
03.05.2014 12:23:52
Hajo_Zi
ein select ist nur notwendig wenn Du den markierten Bereich Drucken willst, was mein Makro nicht macht.
Ich schätze ersetzen und Deinen Drucker eintragen.
Gruß Hajo

Anzeige
AW: Makro einen bestimmten Drucker zuordnen?
03.05.2014 12:25:45
Tino
Hallo,
versuch mal so.
Sub Privatwäsche15()
Dim aktPrinter$, newPrinter$
aktPrinter = Application.ActivePrinter
newPrinter = Find_Drucker("Epson LQ 680 ESC/ P 2*")
If newPrinter <> "" Then
    Application.ActivePrinter = newPrinter
        DoEvents
    ActiveSheet.PageSetup.PrintArea = "$A$3:$C$31"
        DoEvents
    Application.ActivePrinter = aktPrinter
Else
    MsgBox "Drucker Epson LQ 680 ESC/ P 2 nicht gefunden"
End If
End Sub

Function Find_Drucker(LikeName$) As String
Const HKEY_current_user = &H80000001
Dim oReg As Object, i As Long
Dim strKeyPath As String, strValue As String, msg As String
Dim arrPrinter As Variant
Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
strKeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Devices"
oReg.EnumValues HKEY_current_user, strKeyPath, arrPrinter
For i = 0 To Ubound(arrPrinter)
    If arrPrinter(i) Like LikeName Then
        oReg.GetStringValue HKEY_current_user, strKeyPath, arrPrinter(i), strValue
        Find_Drucker = arrPrinter(i) & Replace(strValue, "winspool,", " auf ")
        Exit Function
    End If
Next
Set oReg = Nothing
End Function
Gruß Tino

Anzeige
AW: Makro einen bestimmten Drucker zuordnen?
03.05.2014 12:44:22
jonas
Hab jetzt den Code eingefügt, passiert aber nichts :-)
Sub Privatwäsche15()
Dim aktPrinter$, newPrinter$
aktPrinter = Application.ActivePrinter
newPrinter = Find_Drucker("Epson LQ-680 ESC/P 2*")
If newPrinter  "" Then
Application.ActivePrinter = newPrinter
DoEvents
ActiveSheet.PageSetup.PrintArea = "$A$3:$C$31"
DoEvents
Application.ActivePrinter = aktPrinter
Else
MsgBox "Drucker Epson LQ-680 ESC/P 2 nicht gefunden"
End If
End Sub

Function Find_Drucker(LikeName$) As String
Const HKEY_current_user = &H80000001
Dim oReg As Object, i As Long
Dim strKeyPath As String, strValue As String, msg As String
Dim arrPrinter As Variant
Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
strKeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Devices"
oReg.EnumValues HKEY_current_user, strKeyPath, arrPrinter
For i = 0 To UBound(arrPrinter)
If arrPrinter(i) Like LikeName Then
oReg.GetStringValue HKEY_current_user, strKeyPath, arrPrinter(i), strValue
Find_Drucker = arrPrinter(i) & Replace(strValue, "winspool,", " auf ")
Exit Function
End If
Next
Set oReg = Nothing
End Function

Anzeige
AW: Makro einen bestimmten Drucker zuordnen?
03.05.2014 12:49:49
Tino
Hallo,
teste mal welcher Drucker gezeigt wird.
Sub Privatwäsche15()
Dim aktPrinter$, newPrinter$
aktPrinter = Application.ActivePrinter
newPrinter = Find_Drucker("Epson LQ-680 ESC/P 2*")
If newPrinter  "" Then
msgbox newPrinter
Application.ActivePrinter = newPrinter
DoEvents
ActiveSheet.PageSetup.PrintArea = "$A$3:$C$31"
DoEvents
Application.ActivePrinter = aktPrinter
Else
MsgBox "Drucker Epson LQ-680 ESC/P 2 nicht gefunden"
End If
End Sub
Gruß Tino

die Code-Zeile zum drucken fehlt!
03.05.2014 13:02:30
Tino
Hallo,
da fehlt noch die Zeile zum ausdrucken.
Sub Privatwäsche15()
Dim aktPrinter$, newPrinter$
aktPrinter = Application.ActivePrinter
newPrinter = Find_Drucker("Epson LQ-680 ESC/P 2*")
If newPrinter  "" Then
Application.ActivePrinter = newPrinter
DoEvents
ActiveSheet.PageSetup.PrintArea = "$A$3:$C$31"
ActiveSheet.PrintOut
DoEvents
Application.ActivePrinter = aktPrinter
Else
MsgBox "Drucker Epson LQ-680 ESC/P 2 nicht gefunden"
End If
End Sub
Gruß Tino

Anzeige
AW: die Code-Zeile zum drucken fehlt!
03.05.2014 13:10:39
bauer
Hab ich jetzt gemacht, dann kommt die Meldung.
LQ-680 ESC/P 2 auf LPT1:
Dann auf OK geklickt,
aber nichts passiert?

lade mal ein Beispiel hoch oT.
03.05.2014 13:12:26
Tino

AW: lade mal ein Beispiel hoch oT.
03.05.2014 13:18:22
bauer
Userbild

ich meine kein Bild eine Excel-Datei oT.
03.05.2014 13:37:21
Tino

AW: ich meine kein Bild eine Excel-Datei oT.
03.05.2014 13:52:19
jonas
Habs Problem gelöst.
Danke für eure Hilfe!!!
mfg

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige