Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

test imprimante

  • Initiateur de la discussion Initiateur de la discussion tany
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

tany

XLDnaute Occasionnel
Bonjour à tous,

j'ai recherché mais certainement mal !
voilà : j'imprime avec VBA et je n'ai qu'une seule imprimante
quelquefois j'oublie de la brancher...
alors j'aimerai faire un test comme
if test then msgbox"branchez l'imprimante s.v.p." : exit sub
mais quelle est la commande de ce test en VBA ?
merci.
 
Re : test imprimante

Bonjour ,

Voici une solution

Code:
Option Explicit
 
Sub test()
    Dim Message As String, Etat_Imprimante As String
    Dim Nom_Ordi As String, Reponse As String
    Dim Objet_WMI_Service As Object
    Dim Liste_Imprimantes_Installées As Object
    Dim Imprimante As Object
encore:
    Message = ""
 
    Range("AX6000").PrintOut 'Forcer mise a jour du statut de l'imprimante
 
    Nom_Ordi = "."
 
    Set Objet_WMI_Service = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & Nom_Ordi & "\root\cimv2")
    Set Liste_Imprimantes_Installées = Objet_WMI_Service.ExecQuery("Select * from Win32_Printer")
 
    For Each Imprimante In Liste_Imprimantes_Installées
 
     If InStr(Application.ActivePrinter, Imprimante.Name) Then
        Etat_Imprimante = Imprimante.printerStatus
        Message = "L'imprimante " & Imprimante.Name
        Select Case Imprimante.printerStatus
          Case 3
             Message = Message & " est au repos"
          Case 4
            Message = Message & " est en cours d'impression"
          Case 5
            Message = Message & " est en rechauffement"
          Case Else
            Message = Message & " est hors ligne"
        End Select
      End If
    Next
    Set Liste_Imprimantes_Installées = Nothing
    Set Objet_WMI_Service = Nothing
  
  Select Case Etat_Imprimante
   Case 3, 4, 5
     'lance la vraie impression
     Range("A1:X100").PrintOut
     
   Case Else
     Reponse = MsgBox(Message & vbCrLf & "Veuillez relancer lorsque celle ci sera ok", vbOKCancel, "Etat de l'imprimante")
     If Reponse = vbOK Then GoTo encore

  End Select

End Sub
 
Re : test imprimante

Bonjour,
pas eu le temps, que maintenant...
pas tout compris, je pensais que c' était plus simple mais en tous cas très efficace
alors merci beaucoup camarchepas et bonne journée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
626
J
  • Question Question
Réponses
1
Affichages
872
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…