Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2019 / Arbeit: MS365
(20.06.2016, 12:01)snb, Na geh... ::) guck mal, das habe ich doch schon probiert, siehe unten! cysu11 schrieb: Hallo Andre,
die Function funktioniert, der Code findet den Drucker (habe das in Einzelschrift mit F8 getestet) und springt auf End Function. Dann bleibt aber der code immer an der Stelle stehen:
Application.ActivePrinter = F_findprinter("Zebra") 'Hier den Druckernamen eingeben
Fehlermeldung:
Laufzeitfehler 1004. Die Methode Activeprinter für das Objekt Application ist fehlgeschlagen!
Was kann das sein?
Vielen Dank im Voraus Alexandra
Registriert seit: 29.09.2015
Version(en): 2030,5
Dann zeig doch mal das Ergebnis von: Code: Sub_snb() For Each pr In CreateObject("Wscript.network").EnumPrinterConnections c00 =c00 & vblf & pr Next msgbox c00 End Sub
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Alexandra, teste es mal so: Code: Sub label_druckallgemein_Kuwer() Dim i As Integer Dim AltDrucker As String If Cells(6, 13).Value = "" Then MsgBox "Bitte Start-Wert angeben" Exit Sub End If If Cells(6, 14).Value = "" Then MsgBox "Bitte End-Wert angeben" Exit Sub End If AltDrucker = Application.ActivePrinter 'hier den Drucker so eintragen wie er im Auswahldialog '"Application.Dialogs(xlDialogPrinterSetup).Show" steht 'ohne das hintere z.B. "auf Ne04:" 'die abschließende Tilde ( ~ ) bewirkt die automatische Bestätigung im Auswahldialog SendKeys "Brother MFC-9340CDW Printer~" If Application.Dialogs(xlDialogPrinterSetup).Show Then 'MsgBox "Drucker """ & Application.ActivePrinter & """ wurde ausgewählt." For i = Cells(6, 13).Value To Cells(6, 14).Value x = Cells(8, 14).Value 'If i < 10 Then 'Cells(19, 8).Value = i 'ActiveSheet.PrintOut 'wenn nach jedem hochzählen gedruckt werden sool, dass Hochkomma am Anfang dieser Zeile entfernen 'Else Cells(19, 6).Value = i ActiveSheet.PrintOut Copies:=x 'wenn nach jedem hochzählen gedruckt werden sool, dass Hochkomma am Anfang dieser Zeile entfernen 'End If Next i Application.ActivePrinter = AltDrucker End If End Sub
Gruß Uwe
Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2019 / Arbeit: MS365
(21.06.2016, 14:24)snb schrieb: Dann zeig doch mal das Ergebnis von:
Code: Sub_snb() For Each pr In CreateObject("Wscript.network").EnumPrinterConnections c00 =c00 & vblf & pr Next msgbox c00 End Sub
Hallo snb, diese Code läuft durch und mir werden sämtliche Drucker angezeigt die bei mir am PC eingerichtet sind unter anderen auch der Drucker auf dem mein Code drucken soll: IP_10.10.10.101 \\xxxxxxxxxxx\yyyyyyyyyyUnd nun? VG Alexandra
Registriert seit: 27.04.2014
Version(en): Privat: Office Home & Business 2019 / Arbeit: MS365
Hallo Uwe, dein Code läuft durch allerdings wählt er mir immer den in der Liste nächsten Drucker aus, wenn ich aber den FreePDF in den Code schreibe, dann wählt er tatsächlich auch den FreePDF aus nur bei meinen Netzwerkdrucker springt der Code auf "Fax" ???? Ich habe jetzt einen anderen Ansatz gefunden diese funktioniert auch allerdings ist auch hier ein Problem wo ich nicht weiter komme: Code: Sub DruckTest() Dim printerError As String, printerName As String Dim port As Integer, MeinDrucker As String MeinDrucker = Application.ActivePrinter printerError = True On Error Resume Next For port = 0 To 20 printerName = "\\xxxxxxxxxxx\yyyyyyyyyyy auf Ne0" & port & ":" Err.Clear Application.ActivePrinter = printerName If Err.Number = 0 Then printError = False: Exit For Next On Error GoTo 0 If printError Then MsgBox "Kein Druckerport für \\xxxxxxxxxxx\yyyyyyyyyyy gefunden!" Exit Sub End If
If Cells(6, 13).Value = "" Then MsgBox "Bitte Start-Wert angeben" Exit Sub End If If Cells(6, 14).Value = "" Then MsgBox "Bitte End-Wert angeben" Exit Sub End If
For i = Cells(6, 13).Value To Cells(6, 14).Value x = Cells(8, 14).Value 'If i < 10 Then
'Cells(19, 8).Value = i 'ActiveSheet.PrintOut 'wenn nach jedem hochzählen gedruckt werden sool, dass Hochkomma am Anfang dieser Zeile entfernen 'Else Cells(19, 6).Value = i ActiveSheet.PrintOut Copies:=x 'wenn nach jedem hochzählen gedruckt werden sool, dass Hochkomma am Anfang dieser Zeile entfernen
' End If Next i
Application.ActivePrinter = MeinDrucker
End Sub
Das Problem der Code läuft für die Ports Ne00 bis Ne09 ohne Probleme aber wenn es Ne10 und weiter ist, dann funktioniert das nicht mehr den dann macht der Code Ne010 daraus! Wie kann ich das Problem beheben, wie gesagt sonst funktioniert es ohne Probleme! Vielen lieben Dank VG Alexandra
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Alexandra,
PrinterName = "\\xxxxxxxxxxx\yyyyyyyyyyy auf Ne" & Format(port, "00:")
Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• cysu11
Registriert seit: 29.09.2015
Version(en): 2030,5
21.06.2016, 21:22
(Dieser Beitrag wurde zuletzt bearbeitet: 21.06.2016, 21:22 von snb.)
(21.06.2016, 16:03)cysu11 schrieb: (21.06.2016, 14:24)snb schrieb: Dann zeig doch mal das Ergebnis von:
Code: Sub_snb() For Each pr In CreateObject("Wscript.network").EnumPrinterConnections c00 =c00 & vblf & pr Next msgbox c00 End Sub
Hallo snb,
diese Code läuft durch und mir werden sämtliche Drucker angezeigt die bei mir am PC eingerichtet sind unter anderen auch der Drucker auf dem mein Code drucken soll:
IP_10.10.10.101 \\xxxxxxxxxxx\yyyyyyyyyy
Und nun?
VG Alexandra Es scheint überirdisch schwer meine Frage exakt zu beantworten. Mit xxx/yyy kann niemand etwas anfangen. Erstelle mal ein 'Screenshot'
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo snb,
auch wenn Du es nicht glauben willst: Dein Code funktioniert nicht!
Gruß Uwe
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi, (21.06.2016, 21:22)snb schrieb: Erstelle mal ein 'Screenshot' bei mir daheim kommt das:
In der Firma im Netzwerk sieht es ähnlich aus, dort sind es ebenfalls keine vollständigen Angaben.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hi Ralf,
schön, aber was wolltest Du mit Deinem Post jetzt konkret sagen?
snb ist in der Pflicht, auch wenn er das nicht einsieht. Sein Code, zumindest der Teil/die Zeile mit der Neuzuweisung des aktiven Druckers, ist Mist. Daran ändert auch Andrés Versuch, das schön in Alexandras Makro rein zupacken, nichts.
Gruß Uwe
|