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

Netzwerkdrucker von 3 PCS nutzen

Netzwerkdrucker von 3 PCS nutzen
16.05.2007 07:49:00
3
Hallo
Ich weiß das diesesn Thema schon oft durchgesprochen wurde, aber ich habe keine Lösung gefunden, die bei mir funktionier (habe sie natürlich auf mich angepasst).
Also ich habe folgenden Drucker:
Citizen CLP-621 auf Ne(XX) Dieser Drucker soll von 3 Pcs, mit unterschiedlichen User, (alle windowas xp) per makro ausgewählt werden. Hatte mal eine notlösung, die aber auch nicht bei allen usern funktiunierte:

Sub Drucker()
On Error Resume Next
Application.ActivePrinter = "\\USER XYZ\Citizen CLP-621 auf Ne00:"
Application.ActivePrinter = "\\USER XYZ\Citizen CLP-621 auf Ne01:"
Application.ActivePrinter = "Citizen CLP-621 auf Ne00:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub


Wie gesagt eine Notlösung.
Wer was besseres weis, dem bin ich sehr dankbar!
MFG
Sebbi

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Netzwerkdrucker von 3 PCS nutzen
16.05.2007 09:30:56
3
Hi Sebbi
Was genau funktioniert denn mit deiner Lösung nicht?
Ich glaub, grundsätzlich würd ich es auch mit deinem Code versuchen, habe aber keinen Netzwerkdrucker zum Testen, deswegen meine etwas geänderte Idee also ungetestet:
Voraussetzung ist, dass dir für jeden PC der richtige Druckerpfad bekannt ist.

Sub Drucken()
Dim lboPrFail As Boolean, lboDummy As Boolean
On Error GoTo Fehler
lboPrFail = True
If lboPrFail = True Then
Application.ActivePrinter = "\\USER XYZ\Citizen CLP-621 auf Ne00:"
If lboDummy = False Then
lboPrFail = False
Else
lboDummy = False
End If
End If
If lboPrFail = True Then
Application.ActivePrinter = "Citizen CLP-621 auf Ne00:"
If lboDummy = False Then
lboPrFail = False
Else
lboDummy = False
End If
End If
If lboPrFail = True Then
Application.ActivePrinter = "\\USER XYZ\Citizen CLP-621 auf Ne01:"
If lboDummy = False Then
lboPrFail = False
Else
lboDummy = False
End If
End If
If lboPrFail = False Then
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, Preview:=True
Else
MsgBox "Der richtige Drucker wurde nicht gefunden. Melden Sie das dem  _
Netzwerkverantwortlichen"
End If
Exit Sub
Fehler:
lboPrFail = True
lboDummy = True
Resume Next
End Sub


Wenn ich richtig denke, und der PC das mit dem Code tut, was er soll :-), dann...
...wird zuerst der erste Druckbefehl ohne If-Bedingung versucht.
...wenn das nicht funktioniert, wird die Fehler: - Routine aufgerufen, in der die Variable lboPrFail = True gesetzt wird, und der nächste Befehl wird versucht.
...wenn einer der drei Druckbefehle funktioniert, wird die Variable lboPrFail = False gesetzt, und vllt weitere Druckbefehle werden nicht gestartet, weil eben die Variable lboPrFail nicht True ist.
...die Variable lboDummy wird benötigt, damit die Variable lboPrFail nur im Bedarfsfall durch Resume = Next auf False gesetzt wird.
...und wenn doch alle Stricke reißen, erscheint nach allen drei Fehl-Druckversuchen eine entsprechende Meldung.
Konnte ich helfen?
Ciao
Thorsten

Anzeige
AW: Netzwerkdrucker von 3 PCS nutzen
16.05.2007 09:42:00
3
Hallo Sebbi,
teste mal so:
Sub Drucker_finden()
'Code von Ray
Dim Ne As String, Printer$, i%
Printer = "Citizen CLP-621 auf Ne"
On Error Resume Next
For i = 1 To 99
    Ne = Format(i, "00")
    Err.Number = 0
    Application.ActivePrinter = Printer & Ne & ":"
    If Err.Number = 0 Then
        Exit For
    End If
Next
End Sub
Gruß aus Leipzig
P@ulchen
www.excel-werkstatt.de

Anzeige
AW: Netzwerkdrucker von 3 PCS nutzen
16.05.2007 10:45:55
3
Sorry habe mich zu früh gefreut! Er druckt leider auf den Standartdrucker (nicht auf dem Citi. Drucker)!
Irgentwie wählt er in nicht aus! Kann es sein, das das ganze nicht funktioniert wenn ich das von dem PC aus ausführe an dem der Drucker hängt (nicht übers netztwer)?
Aber vielen dank für deine Mühen!
PS: Die seiten Etik_Proben und Etik_ArbeitsLsg. sind unsichtbat! wenn ich sie nicht manuel sichtbar mache funktioniert das Makro leider nicht. Kannst du mir das noch dazupacken? Seiten am anfang sichtbar machen und am ende wieder unsichtbar.
Mein Versuch:

Sub Vis ()
Sheets("Etik_Proben.").Visible = True
Sheets("Etik_ArbeitsLsg.").Visible = True
' DRUCKEN
ActiveWindow.SelectedSheets.Visible = False
ActiveWindow.SelectedSheets.Visible = False
'Schug mit eiener Debugger Meldung fehl
End Sub


Anzeige
AW: Netzwerkdrucker von 3 PCS nutzen
16.05.2007 11:01:38
3
Hier der Code mit Einblendung der Blätter:
Sub Etiketten_druck()
' Makro am 23.03.2007 von Sebastian Schelb aufgezeichnet
Dim xPrinter As String
Dim j As Integer, z As Integer
Dim wks As Worksheet
Dim rng As Range
Application.ScreenUpdating = False
xPrinter = Application.ActivePrinter    ' Aktiven Drucker auslesen
Call Drucker_finden
For j = 1 To Worksheets.Count
    If Worksheets(j).Name = "Etik_Proben" Or Worksheets(j).Name = "Etik_ArbeitsLsg." Then
        Set wks = Worksheets(j)
        wks.Visible = xlSheetVisible    ' Blatt einblenden
        wks.Activate
        For z = 1 To 6000  'letzte Zeile anpassen
            If wks.Cells(z, 1).Value <> 0 Then Set rng = wks.Range(Cells(2, 1), Cells(z, 1))
        Next z
        wks.PageSetup.PrintArea = rng.Address
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
        wks.Visible = xlSheetVeryHidden ' Blatt ausblenden
    End If
Next
Sheets("Rohdaten").Activate
Application.ActivePrinter = xPrinter    ' Aktiven Drucker zurücksetzen
Application.ScreenUpdating = True
End Sub
Sub Drucker_finden()
'Code von Ray
Dim Ne As String, Printer$, i%
Printer = "Citizen CLP-621 auf Ne"
On Error Resume Next
For i = 1 To 99
    Ne = Format(i, "00")
    Err.Number = 0
    Application.ActivePrinter = Printer & Ne & ":"
    If Err.Number = 0 Then
        Exit For
    End If
Next
End Sub
Bei mir funktioniert die Ausgabe am lokalen Drucker. Nur Netzwerk kann ich grad nicht testen, funktioniert denn das bei Dir bzw. Deinen Kollegen?

Anzeige
AW: Netzwerkdrucker von 3 PCS nutzen
16.05.2007 11:44:00
3
Also das mit den unsichbarmachen funktioniert SUPER!! Merci schon mal!!
Aber das mit dem Drucker erkennen leider nicht! Er druckt das Zeug immer auf dem Standartdrucker =(
Ich glaube, er sucht den drucker, findet ihn und setzt ihn aber nicht als AKTIV PRINTER (kann den Befehl zumindest nicht finden)
MFG Sebbi
PS: habe es mit allen 3 rechnern und verschieden angemeldeten User versucht. Immer druckt er auf dem Standart drucker

AW: Netzwerkdrucker von 3 PCS nutzen
16.05.2007 12:17:08
3
Hallo Sebbi,
ich habe mal eine Codezeile eingefügt, die Dir vor Beginn des Druckes den aktiven Printer anzeigt.
Außerdem habe ich mal Deine Ursprungsbezeichnung in die Sub Drucker_finden eingesetzt.
Es sollte, falls der Drucker als Netzwerkdrucker installiert ist, dieser gefunden werden, ansonsten wird auf dem Standarddrucker ausgegeben.
Den Userxyz mußt Du natürlich wieder anpassen...
Option Explicit
Sub Etiketten_druck()
' Makro am 23.03.2007 von Sebastian Schelb aufgezeichnet
Dim xPrinter As String
Dim j As Integer, z As Integer
Dim wks As Worksheet
Dim rng As Range
Application.ScreenUpdating = False
xPrinter = Application.ActivePrinter    ' Aktiven Drucker auslesen
Call Drucker_finden
For j = 1 To Worksheets.Count
    If Worksheets(j).Name = "Etik_Proben" Or Worksheets(j).Name = "Etik_ArbeitsLsg." Then
        Set wks = Worksheets(j)
        wks.Visible = xlSheetVisible
        wks.Activate
        For z = 1 To 6000  'letzte Zeile anpassen
            If wks.Cells(z, 1).Value <> 0 Then Set rng = wks.Range(Cells(2, 1), Cells(z, 1))
        Next z
        wks.PageSetup.PrintArea = rng.Address
        MsgBox Application.ActivePrinter
        'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
        wks.Visible = xlSheetVeryHidden
    End If
Next
Sheets("Rohdaten").Activate
Application.ActivePrinter = xPrinter    ' Aktiven Drucker zurücksetzen
Application.ScreenUpdating = True
End Sub
Sub Drucker_finden()
'Code von Ray
Dim Ne As String, Printer$, i%
Printer = "\\USER XYZ\Citizen CLP-621 auf Ne"
On Error Resume Next
For i = 1 To 99
    Ne = Format(i, "00")
    Err.Number = 0
    Application.ActivePrinter = Printer & Ne & ":"
    If Err.Number = 0 Then
        Exit For
    End If
Next
End Sub

Anzeige
AW: Netzwerkdrucker von 3 PCS nutzen
16.05.2007 12:19:00
3
Hi
Was funzt denn mit meinem Code nich (erste Antwort auf deine Frage)?
Ciao
Thorsten

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige