Benötige wieder einmal eure Hilfe. Folgenden Code habe ich (mit Hilfe von Daniel) in einer Userform zur Druckerbestimmung.
Private Sub CommandButton2_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As _
_
Single, ByVal y As Single)
Dim strPrinter As String
strPrinter = Application.ActivePrinter
Dim anz As Integer
Dim Eingabe As String
anz = 1
If Button = 2 Then
Eingabe = InputBox("Anzahl?")
If Not IsNumeric(Eingabe) Then Exit Sub
anz = CInt(Eingabe)
If anz = 0 Then Exit Sub
End If
Application.ActivePrinter = "ZDesigner S4M-203dpi ZPL auf Ne00:"
Sheets("Sticker").PrintOut From:=1, To:=1, Copies:=anz, Collate _
:=True, IgnorePrintAreas:=False
Application.ActivePrinter = strPrinter
End Sub
Der Code funktioniert auch einwandfrei. Inzwischen ist es aber so, das andere in der Firma auch meine UserForm nutzen sollen.
Das Problem dabei ist die Druckerauswahl. Bei mir ist das fest vorgegeben.
Was ich benötige ist ein Button o.ä. in der UserForm, der bei einem Klick darauf, alle im Netzwerk erreichbaren Drucker in einem ?Listenfeld? auflistet, und dann den gewünschten Drucker in diesen Code einfügt. Die einmal vorgenommene Auswahl soll dann aber solange erhalten bleiben, bis jemand eine neue Auswahl trifft. Den obigen Code gibt es 35x in meiner UserForm, nur mit anderen "PrintOut From To" zuweisungen.
Es geht also um die Zeile:
Application.ActivePrinter = "ZDesigner S4M-203dpi ZPL auf Ne00: "
Diese Zeile sollte variabel vom Benutzer auszuwählen sein, ohne im Code herum zu schreiben.
Zur Info: Bei dem oben angegebenem Drucker, handelt es sich um einen Label-Drucker für selbstklebende Etiketten. Darum auch das jeweilige zurücksetzen nach dem Druck auf den vorherigen (normalen) Drucker (strPrinter), sonst würde alles auf dem Label-Drucker gedruckt werden.
Vielen Dank für eure Hilfe
Michael