noms d'imprimante sont très particulière - si elle n'est pas entré exactement que Windows attend, vous obtiendrez une erreur. (Puisque vous n'avez pas noté le message d'erreur spécifique dans votre question, je suppose que c'est là où le problème est, c'est le problème le plus probable.)
Ce que j'ai fait dans cette situation est de fournir à l'utilisateur un liste des imprimantes disponibles. Vous pouvez utiliser ce code pour remplir une liste (appelée lstPrinters):
Private Sub LoadPrintersListBox()
Dim prtLoop As Printer
Dim strListRowSource As String
For Each prtLoop In Application.Printers
strListRowSource = strListRowSource + prtLoop.DeviceName + ";"
Next prtLoop
lstPrinters.RowSource = strListRowSource
End Sub
Ensuite, vous pouvez utiliser la sélection de l'utilisateur pour définir l'imprimante. (Ce code suppose un bouton appelé cmdSetPrinter est disponible, que l'utilisateur cliquera une fois que l'imprimante est sélectionnée.)
Private Sub cmdSetPrinter_Click()
Application.ActivePrinter = lstPrinters.Column(0)
End Sub
Vous pouvez être sûr que les imprimantes dans la liste sont nommés en fonction de ce que le système aura besoin, et vous n'avez pas besoin de vous soucier des fautes de frappe.
+1 - CHERCHAIT cette information pour automatiser l'impression dans mon Application Excel Merci. –