Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1064to1068
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

USB -Druckeranschlüsse

USB -Druckeranschlüsse
28.03.2009 11:32:22
Hermann
Hi,
habe ein Exelprogramm in dem ich über Makros verschiedene Drucker zum Etikettenausdruck ansteuere.
Diese Drucker sind allermeist mit USB-Anschluß.
Ich habe aber immerwieder das Problem,wenn ich ein USB-Drucker anschließe,daß die Ne Nummer nicht
mehr mit der in meinem Makro übereinstimmt.Ich muß dann alle Makros durcharbeiten und die Nummer
ändern.
Gibt es da nicht eine Lösung.
Ich habe da schon an ein Modul gedacht in dem ich alle vorhandene Drucker eintrage,mit Nr oder Kurzbezeichnung versehe und die Ne Nummer zuordne.In den Einzelnen Makros sollte dann nur die
Kurzbezeichnung geschrieben werden und das Programm weiß welcher Drucker auf welchem Ne.
z.B. Drucker Lexmark 210 hat Kurzbezeichnung Drucker 1 und ist auf Ne01 angeschlossen.Drucker
Zebra 2844 hat Kurzbezeichnung Drucker 2 und ist auf Ne02 angeschlossen usw.
Im Makro schreibe ich dann nur Drucker 1 oder so.
Wenn dann durch Druckerwechsel der Ne sich ändert ,verändere ich nur im Modul die Ne Zuordnung.
Geht so was oder wer kann mir bei diesem Problem helfen?

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: USB -Druckeranschlüsse
28.03.2009 12:03:35
Tino
Hallo,
hiermit müsste es gehen, den Drucker den Du suchst musst Du noch anpassen.
Option Explicit

'modifiziert zu einer Funktion, Original stammt glaube ich von Ramses 
Public Function FindDrucker(DruckerName As String) 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)
        oReg.GetStringValue HKEY_current_user, strKeyPath, arrPrinter(i), strValue
        FindDrucker = arrPrinter(i) & Replace(strValue, "winspool,", " auf ")
        If FindDrucker Like "*" & DruckerName & "*" Then
         Exit Function
        End If
    Next
    
    FindDrucker = "Drucker nicht gefunden"
    Set oReg = Nothing
End Function

Sub Drucken()
Dim Drucker As String
Drucker = FindDrucker("Samsung CLX")

If Drucker = "Drucker nicht gefunden" Then 'Drucker gefunden? 
 MsgBox Drucker, vbCritical
 Exit Sub
End If

'hier Dein Druckcode unter verwendung von Drucker 

End Sub


Gruß Tino

Anzeige
AW: USB -Druckeranschlüsse
28.03.2009 13:29:07
Hermann
Hallo Tino,
danke für Dein Tip,aber ich komme nicht weiter.
Wie muß ich meinen (meine)Drucker anpassen.
Ansatt"Samsung CLx" meinen Druckernamen?
Er bleibt aber immer bei Drucker=FindDrucker("...") hängen und
meldet Fehler beim kompilieren:Sub oder Funktion nicht definiert!
Gruß
Hermann
AW: USB -Druckeranschlüsse
28.03.2009 13:39:48
Tino
Hallo,
ein Fehler war da noch drin, obwohl dies keinen Fehler verursacht.
Ich habe eine Variable den Namen des Makros gegeben.
Versuche es mal so, die Funktion kommt in ein Modul.
Option Explicit

'modifiziert zu einer Funktion, Original stammt glaube ich von Ramses 
Public Function FindDrucker(DruckerName As String) 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)
        oReg.GetStringValue HKEY_current_user, strKeyPath, arrPrinter(i), strValue
        FindDrucker = arrPrinter(i) & Replace(strValue, "winspool,", " auf ")
        If FindDrucker Like "*" & DruckerName & "*" Then
         Exit Function
        End If
    Next
    
    FindDrucker = "Drucker nicht gefunden"
    Set oReg = Nothing
End Function

Sub Drucken_Suchen_Umstellen()
Dim Drucker As String
Drucker = FindDrucker("Samsung CLX")

If Drucker = "Drucker nicht gefunden" Then 'Drucker gefunden? 
 MsgBox Drucker, vbCritical
 Exit Sub
End If

'hier Dein Druckcode unter verwendung von Drucker 

End Sub


Gruß Tino

Anzeige
AW: USB -Druckeranschlüsse
28.03.2009 18:07:13
Hermann
Hi Tino,
hat jetzt geklappt,vielen Dank
Gruß
Hermann

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige