Bonjour,
Il faudrait plutôt aller chercher une imprimante disponible avec votre macro.
Le fichier joint contient un onglet qui vous permet de lister dans un tableau structuré, les imprimantes installées sur votre pc et d'en choisir une à partir d'une liste déroulante dans une zone nommée "ImprimanteChoisie".
L'idéal serait de lancer la procédure à l'ouverture de votre fichier si c'est un pc portable.
Sub ListeImprimantes_et_Statut()
Dim objWMIService As Object, colInstalledPrinters As Object, objPrinter As Object
Dim NomPC As String
Dim TableImprimantes As ListObject
Dim LigneTable As ListRow
NomPC = "."
Set TableImprimantes = Sheets("Imprimantes").ListObjects("t_Imprimantes")
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & NomPC & "\root\cimv2")
Set colInstalledPrinters = objWMIService.execQuery("Select * from Win32_Printer")
With TableImprimantes
If .ListRows.Count > 1 Then .DataBodyRange.Delete
End With
For Each objPrinter In colInstalledPrinters
Set LigneTable = TableImprimantes.ListRows.Add
With LigneTable
.Range(1, 1) = objPrinter.Name
If objPrinter.Default = True Then .Range(1, 2) = "X"
If InStr(1, Application.ActivePrinter, objPrinter.Name, vbTextCompare) > 0 Then .Range(1, 3) = "X"
End With
Set LigneTable = Nothing
Next
Set TableImprimantes = Nothing: Set objWMIService = Nothing: Set colInstalledPrinters = Nothing
End Sub