Drucken auf Netzwerkdrucker in Excel
Schritt-für-Schritt-Anleitung
- Öffne das Excel-Dokument, in dem du eine Befehlsschaltfläche zur Druckausgabe erstellt hast.
- Füge den folgenden VBA-Code in den Code-Editor ein, um den Drucker zuzuweisen:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim Ne As String, Printer$, i%
Printer = "\\1-server\Kyocera Mita KM-2550 KX 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
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"\\1-server\Kyocera Mita KM-2550 KX auf Ne", Collate:=True
End Sub
- Teste den Code, indem du die Befehlsschaltfläche drückst. Überprüfe, ob der Druckauftrag erfolgreich gesendet wird.
Häufige Fehler und Lösungen
-
Laufzeitfehler 1004: Dieser Fehler tritt häufig auf, wenn der Drucker nicht richtig zugewiesen ist. Achte darauf, dass die Ziffer "Ne" korrekt ist und dass der Drucker im Netzwerk verfügbar ist.
-
Keine Fehlermeldung beim Drucken: Wenn du keine Rückmeldung erhältst, kann es daran liegen, dass der Druckbefehl nicht korrekt ausgeführt wird. Stelle sicher, dass der PrintOut
-Befehl im Code enthalten ist, wie im obigen Beispiel.
Alternative Methoden
Eine alternative Methode zur Zuweisung des Druckers könnte die Verwendung eines einfachen Dialogfeldes sein, um den Benutzer den gewünschten Drucker auswählen zu lassen. Hier ist ein Beispiel:
Sub DruckerAuswahl()
Dim DruckerName As String
DruckerName = Application.InputBox("Bitte Druckername eingeben:", Type:=2)
Application.ActivePrinter = DruckerName
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub
Praktische Beispiele
Hier ist ein praktisches Beispiel, wie der Code in einer realen Anwendung aussehen könnte:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim Ne As String, Printer$, i%
Printer = "\\1-server\Kyocera Mita KM-2550 KX 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
Sheets("kdg").PrintOut From:=1, To:=1, Copies:=1, Collate:=True
End Sub
Dieses Beispiel zeigt, wie man den Druckauftrag an ein spezifisches Blatt namens "kdg" sendet.
Tipps für Profis
- Verwalte Drucker effizient: Nutze
On Error Resume Next
, um Fehler abzufangen und den Code nicht zu stoppen, wenn ein Drucker nicht gefunden wird.
- Automatisierung: Integriere diesen Code in größere Automatisierungsprojekte, um den Workflow zu verbessern.
- Tests durchführen: Teste den Code unter verschiedenen Bedingungen, um sicherzustellen, dass er in jedem Netzwerkumfeld funktioniert.
FAQ: Häufige Fragen
1. Was bedeutet Laufzeitfehler 1004?
Dieser Fehler weist darauf hin, dass ein Problem mit dem Drucker oder der Druckanweisung vorliegt. Überprüfe die Druckerzuweisung und die Verfügbarkeit des Druckers.
2. Kann ich mehrere Drucker in meinem Code verwenden?
Ja, du kannst mehrere Drucker definieren und je nach Bedarf im Code umschalten.
3. Warum funktioniert der Druckbefehl nicht?
Stelle sicher, dass der Drucker korrekt zugewiesen ist und dass die PrintOut
-Anweisung im Code enthalten ist.