Clever-Excel-Forum

Normale Version: Code anpassen!
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
(20.06.2016, 11: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
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 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
(21.06.2016, 13: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
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
Hallo Alexandra,

PrinterName = "\\xxxxxxxxxxx\yyyyyyyyyyy auf Ne" & Format(port, "00:")

Gruß Uwe
(21.06.2016, 15:03)cysu11 schrieb: [ -> ]
(21.06.2016, 13: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'
Hallo snb,

auch wenn Du es nicht glauben willst: Dein Code funktioniert nicht!

Gruß Uwe
Hi,

(21.06.2016, 20:22)snb schrieb: [ -> ]Erstelle mal ein 'Screenshot'

bei mir daheim kommt das:
[attachment=5761]

In der Firma im Netzwerk sieht es ähnlich aus, dort sind es ebenfalls keine vollständigen Angaben.
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
Seiten: 1 2 3