Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Druckerstatus abfragen

Druckerstatus abfragen
Thomaso
Guten Morgen zusammen
Möchte gerne bevor ich einen Druck aufgebe wissen ob der Netzwerkdrucker eingeschalten und bereit ist ansonsten eine Meldung einblenden. Habe gegoogelt und immerhin rausgefunden, dass die Eigenschaft Workoffline heisst aber denoch den Code nicht zum laufen gebracht:-(

Sub Druckerstatus()
Dim objPrinter As Object
Set objPrinter = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("Select * from  _
Win32_Printer where Name='\\SRWAG001\ls-plotter'")
If objPrinter.workoffline = "WAHR" Then
MsgBox "Bitte den Drucker einschalten!!"
End If
End Sub
Habt Ihr eine Idee wie ich da weiterkomme.
Besten Dank für einen Tipp
Gruss
TOM
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Druckerstatus abfragen
07.09.2011 18:53:30
Anton
Hallo Thomas,
probier's hiermit:
Code:

Sub Druckerstatus()
  Dim objPrinter As Object, objItem  As Object    
  Dim drucker As String, gefunden As Boolean    
  drucker = "\\SRWAG001\ls-plotter"
  gefunden = False
  Set objPrinter = GetObject("winmgmts:\\.\root\cimv2").ExecQuery _    
                            ("Select * from Win32_Printer")  
  For Each objItem In objPrinter    
    If objItem.Name = drucker Then  
      gefunden = True
      If objItem.WorkOffline = True Then  
        MsgBox "Bitte den Drucker einschalten!!"
        Exit For  
      End If  
    End If  
  Next
  If gefunden = False Then MsgBox "Drucker " & drucker & " nicht installiert!"  
End Sub  


mfg Anton
Anzeige
AW: Druckerstatus abfragen
09.09.2011 06:57:50
Thomaso
Guten Morgen Anton
Besten Dank für Deinen Code denn ich soeben getestet habe. Beim lokal angeschlossenen Drucker funktioniert's leider beim Netzwerkdrucker nicht:-(
Auch wenn der Netzwerkdrucker ausgeschaltet ist bringt Workoffline =FALSCH also Online?
Schade, dass es nicht geht...
Habt Ihr noch eine Idee?
Gruss
TOM
Anzeige
Test oT
08.09.2011 16:36:40
Anton
oT
;
Anzeige

Infobox / Tutorial

Druckerstatus in Excel abfragen


Schritt-für-Schritt-Anleitung

Um den Druckerstatus in Excel abzufragen, kannst Du den folgenden VBA-Code verwenden. Dieser Code überprüft, ob der angegebene Netzwerkdrucker eingeschaltet und bereit ist.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und dann auf Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Sub Druckerstatus()
       Dim objPrinter As Object
       Dim objItem As Object
       Dim drucker As String, gefunden As Boolean
    
       drucker = "\\SRWAG001\ls-plotter"
       gefunden = False
    
       Set objPrinter = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("Select * from Win32_Printer")
    
       For Each objItem In objPrinter
           If objItem.Name = drucker Then
               gefunden = True
               If objItem.WorkOffline = True Then
                   MsgBox "Bitte den Drucker einschalten!!"
                   Exit For
               End If
           End If
       Next
    
       If gefunden = False Then
           MsgBox "Drucker " & drucker & " nicht installiert!"
       End If
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus, um den Status des Druckers abzufragen.


Häufige Fehler und Lösungen

  • Fehler: "Drucker nicht installiert!"

    • Ursache: Der angegebene Druckername ist falsch oder der Drucker ist nicht im Netzwerk verfügbar.
    • Lösung: Überprüfe den Druckernamen auf Schreibfehler und stelle sicher, dass der Drucker im Netzwerk richtig konfiguriert ist.
  • Fehler: WorkOffline gibt FALSCH zurück, obwohl der Drucker aus ist

    • Ursache: Möglicherweise gibt es ein Problem mit der Netzwerkverbindung oder der Druckertreiber.
    • Lösung: Überprüfe die Verbindung zum Drucker und aktualisiere den Druckertreiber.

Alternative Methoden

Eine alternative Methode zur Abfrage des Druckerstatus könnte die Verwendung von Windows PowerShell sein. Hier ein Beispiel, wie Du den Druckerstatus mit PowerShell abfragen kannst:

Get-WmiObject -Query "SELECT * FROM Win32_Printer WHERE Name='\\SRWAG001\ls-plotter'" | Select-Object Name, WorkOffline

Du kannst diese Methode nutzen, um den Status in einer Windows-Skripting-Umgebung zu überprüfen.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du den Druckerstatus abfragen kannst:

  1. Lokaler Drucker

    • Verwende den gleichen Code, aber ändere den Druckernamen auf den lokalen Druckernamen (z.B. "Druckername").
  2. Drucker im Netzwerk

    • Stelle sicher, dass Du den vollständigen Netzwerkpfad angibst (z.B. \\DEIN_SERVER\Druckername).

Tipps für Profis

  • Verwende Fehlerbehandlungsroutinen in Deinem VBA-Code, um unerwartete Fehler abzufangen und den Code robuster zu gestalten.
  • Du kannst den Druckerstatus auch in Excel-Zellen anzeigen, anstatt nur über MsgBox zu informieren. Dies kann hilfreich sein, um mehrere Druckerstatus gleichzeitig zu überwachen.

Beispiel:

Cells(1, 1).Value = "Druckerstatus: " & IIf(objItem.WorkOffline, "Offline", "Online")

FAQ: Häufige Fragen

1. Frage Warum funktioniert der Code nicht für meinen Netzwerkdrucker?

Antwort: Überprüfe, ob der Drucker im Netzwerk verfügbar ist und ob der Druckername korrekt eingegeben wurde. Möglicherweise ist auch der Druckertreiber nicht richtig installiert.

2. Frage Kann ich den Druckerstatus auch ohne VBA abfragen?

Antwort: Ja, Du kannst den Druckerstatus auch über Windows PowerShell abfragen, wie im Abschnitt "Alternative Methoden" beschrieben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige