Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
432to436
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
432to436
432to436
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Drucker auslesen, auswählen und drucken

Drucker auslesen, auswählen und drucken
25.05.2004 22:23:53
Raffi
Hallo zusammen,
Habe den Code, den ich hier gefunden habe, bei mir eingebaut:
https://www.herber.de/mailing/volumina/168902x.htm
Mit diesem Code werden alle installierten Drucker ausgelesen.
Die Druckernamen lasse ich in eine Combobox füllen. Leider komm ich irgendwie nicht weiter. Wie kann ich nun auf dem ausgewählten Drucker drucken. Das Problem ist, dass der Wert in der ComboBox z.B. "Drucker1" ist, jedoch zum drucken der Wert "Drucker1 auf USB0001" nötig ist. Leider kann ich nicht statisch den String "auf USB 001" anhängen, den der Code soll auf verschiedenen Computern mit unterschiedlichen Netzwerkdruckern ausgeführt werden.
Ich hoffe, ihr versteht mein Problem und könnt mir helfen.
Vielen Dank und Gruss
Raffi

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Drucker auslesen, auswählen und drucken
26.05.2004 06:30:40
GraFri
Hallo
Die Druckernamen sind bekannt, daher nur mehr den Drucker wechseln. Hier ein Beispiel wie das geht. Du mußt nur den Druckernamen mittels Variablen einsetzen. Konnte es nur unter Office 2000 testen.


Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" _
(ByVal lpszSection As StringByVal lpszKeyName As String, _
ByVal lpszString As StringAs Long
Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" _
(ByVal lpAppName As StringByVal lpKeyName As String, _
ByVal lpDefault As StringByVal lpReturnedString As StringByVal nSize As LongAs Long
Declare Function SendMessage Lib "User32" Alias "SendMessageA" _
(ByVal hWnd As LongByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) As Long
Public Const HWND_BROADCAST = &HFFFF&
Public Const WM_WININICHANGE = &H1A
Dim DruckerName As String
Sub Ausdrucken()
Call Drucker_Wechseln("OKIPAGE 10ex LPT1")
'Sheets(1).PrintOut
'Call Drucker_Wechseln("hp deskjet 990c series")
End Sub
Sub Drucker_Wechseln(DruckerName As String)
    SetDefaultPrinter DruckerName
End Sub
Public Function SetDefaultPrinter(PrName As String)
' Parameter: Druckername
' Rückgabewert: Erfolg der Aktion
Dim Buffer As String, RW, Tmp As String
On Error GoTo Er
Buffer = String(255, 0)
RW = GetProfileString(ByVal "devices", ByVal PrName, ByVal "", Buffer, Len(Buffer))
If RW <= 0 Then
    SetDefaultPrinter = False
    Exit Function
Else
    Tmp = PrName & "," & Mid(Buffer, 1, RW)
End If
' Standarddrucker setzen
RW = WriteProfileString(ByVal "Windows", ByVal "Device", ByVal Tmp)
If RW <> 1 Then
SetDefaultPrinter = False
Exit Function
End If
' und mitteilen, daß sich die WIN.INI geändert hat
RW = SendMessage(HWND_BROADCAST, WM_WININICHANGE, 0&, 0&)
SetDefaultPrinter = True
Ex:
Exit Function
Er:
MsgBox "SetDefaultPrinter: " & Err.Description
SetDefaultPrinter = False
Resume Ex
Mit freundlichen Grüßen, GraFri
Anzeige
AW: Drucker auslesen, auswählen und drucken
26.05.2004 08:22:03
Raffi
Danke für die Hilfe. Das kann ich brauchen.
Merci bien und Gruss
Raffi
ActivePrinter
26.05.2004 07:13:06
Well
Wenn du den Druckernamen schon hast:
alterDrucker =Application.ActivePrinter
Application.ActivePrinter = neuerDrucker
Drucken
Application.ActivePrinter = alterDrucker
Fare Well

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige