Netzwerkdrucker im Makro an verschiedenen PCs
Schritt-für-Schritt-Anleitung
-
Druckeranschluss ermitteln: Du musst zuerst herausfinden, wie der Drucker auf dem jeweiligen PC zugewiesen ist. Es kann sein, dass du verschiedene Ports wie Ne02:, Ne03: usw. verwenden musst.
-
Makro erstellen: Füge das folgende VBA-Makro in dein Excel-Dokument ein, um den Drucker automatisch zu finden und das versteckte Tabellenblatt auszudrucken:
Sub PrintEverywhere()
Dim i As Long
Dim pString As String
pString = "\\XY1234\AB987 auf Ne"
Application.DisplayAlerts = False
On Error Resume Next
For i = 1 To 64
Application.ActivePrinter = "" & pString & Format(i, "00") & ":"
Next i
If InStr(1, Application.ActivePrinter, pString) = 0 Then
MsgBox "Der Drucker: " & pString & " existiert auf diesem Rechner nicht", vbOKOnly, "Fehler"
Exit Sub
End If
On Error GoTo 0
Application.DisplayAlerts = True
Sheets("Lieferschein").Visible = True
Sheets("Lieferschein").PrintOut Copies:=2
Sheets("Lieferschein").Visible = False
End Sub
-
Druckbefehl anpassen: Stelle sicher, dass du den Namen des Tabellenblatts (Lieferschein) anpasst, falls du einen anderen Namen verwendest.
Häufige Fehler und Lösungen
-
Fehler beim Finden des Druckers: Wenn du eine Fehlermeldung erhältst, dass der Drucker nicht existiert, überprüfe die Netzwerkverbindung und die Druckerinstallation auf dem jeweiligen PC.
-
Debug-Fehlermeldung bei PrintOut: Stelle sicher, dass du den richtigen Druckernamen und die richtige Syntax verwendest. Verwende den ActivePrinter-Parameter in der PrintOut-Methode, um den Drucker direkt anzusprechen:
Sheets("Lieferschein").PrintOut Copies:=2, ActivePrinter:="\\XY1234\AB987"
Alternative Methoden
Eine alternative Methode, um den Drucker zu steuern, ist die Verwendung einer Batch-Datei. Du kannst eine Batch-Datei erstellen, die den Drucker an einen bestimmten Port zuweist:
net use LPT2: \\XY1234\AB987
In Excel kannst du dann das Makro verwenden, um zum LPT2-Port zu drucken:
TaskID = Shell("c:\batch.bat")
Praktische Beispiele
Hier ist ein Beispiel für ein einfaches Makro, das den Drucker an einen bestimmten Port sendet und zwei Kopien des Lieferschein-Sheets ausdruckt:
Sub PrintToNetworkPrinter()
Application.ActivePrinter = "\\XY1234\AB987 auf Ne02:"
Sheets("Lieferschein").PrintOut Copies:=2
End Sub
Tipps für Profis
-
Drucker-Management: Achte darauf, dass du regelmäßig die Druckerinstallationen und -verbindungen überprüfst, insbesondere in einer Netzwerkumgebung.
-
Fehlerbehandlung: Verwende On Error-Statements, um Fehler elegant zu behandeln und den Nutzer über Probleme zu informieren.
FAQ: Häufige Fragen
1. Warum funktioniert mein Makro nur auf einem PC?
Das Makro muss auf jedem PC die spezifische Druckerzuweisung erkennen. Stelle sicher, dass die Drucker auf allen PCs richtig installiert sind.
2. Was tun, wenn der Drucker nicht gefunden wird?
Überprüfe die Verbindung zum Netzwerkdrucker und stelle sicher, dass der Drucker installiert und betriebsbereit ist. Nutze das Makro, um nach dem Drucker zu suchen.
3. Kann ich das Makro anpassen, um andere Tabellenblätter zu drucken?
Ja, ändere einfach den Namen des Tabellenblatts in deinem Makro, um das gewünschte Blatt auszudrucken.
4. Wie kann ich mehrere Drucker verwalten?
Du kannst mehrere Makros erstellen, die jeweils einen bestimmten Drucker ansteuern, oder die Logik im bestehenden Makro erweitern, um mehrere Drucker zu unterstützen.