Option Explicit
Sub Pvt1G()
Dim Mem_Imprim, Imprimante_en_Cours, Imprimantes_Utilisateur, ObjWMIService, Test_Imprim As Boolean
Mem_Imprim = Application.ActivePrinter
Set ObjWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
Set Imprimantes_Utilisateur = ObjWMIService.ExecQuery("Select * from Win32_Printer")
For Each Imprimante_en_Cours In Imprimantes_Utilisateur
If Left(Imprimante_en_Cours.Name, 23) = "\\chuprnv3\i0983 sur Ne" Then
Test_Imprim = True
On Error GoTo Gere_Erreurs
Sheets("Etiquettes").Range("A1:B3").PrintOut Copies:=2, ActivePrinter:=Imprimante_en_Cours.Name
On Error GoTo 0
Exit For
End If
Next Imprimante_en_Cours
If Test_Imprim Then
MsgBox Prompt:="L'impression a été envoyée", Title:="Information", Buttons:=vbOKOnly + vbInformation
Else
MsgBox Prompt:="L'imprimante \\chuprnv3\i0983 n'a pas été détectée", Title:="Information", Buttons:=vbOKOnly + vbInformation
End If
Application.ActivePrinter = Mem_Imprim
Exit Sub
Gere_Erreurs:
Application.ActivePrinter = Mem_Imprim
MsgBox Prompt:="Un problème a été détecté lors de l'impression." & vbLf & _
"Erreur " & Err & " interceptée !" & vbLf & "Type : " & Error(Err), Title:="Information", Buttons:=vbOKOnly + vbCritical
End Sub