Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Impression - Modification imprimante

1 réponse
Avatar
JacquesH
Bonjour à toutes et tous,

J'ai la macro suivante qui fonctionne très bien pour imprimer la
feuille en cours sur une imprimante couleur et qui revient directement
sur mon imprimante active (merci au forum et à ses archives).

Sub Imprime_Couleur()
'Modifie l'imprimante
Dim Defaut_Impr
Defaut_Impr = Application.ActivePrinter
Application.ActivePrinter = "\\BA\Dell 3000 CN RDC Gauche sur
Ne01:"
'Imprime
ActiveSheet.PrintOut Copies:=1, Collate:=True
'Remet l'imprimante active au début
Application.ActivePrinter = Defaut_Impr
End Sub

J'utilise la même technique dans de nombreuses autres macros en
modifiant parfois légèrement le code.
Mon problème est le suivant : mon ordinateur a été ré-installé et
l'imprimante couleur n'est plus sur le même "port" : No01 au lieu de
Ne03. De plus, à l'avenir le nom de cette imprimante peut changer...
Comme je n'ai pas très envie de changer dans toutes mes macros à chaque
fois, je voudrais faire la chose suivante : saisir dans une cellule de
mon classeur "Perso.xls" les références de l'imprimante :
"\\BA\Dell 3000 CN RDC Gauche sur Ne01:"
Faire appel directement à cette cellule pour définir l'imprimante. De
cette manière, à l'avenir je n'aurais que cette cellule à modifier.

Sub Imprime_Couleur()
Dim Imprimante As String
Imprimante = Workbooks("Perso.xls").Sheets("Feuil1").[C3].Value

'Modifie l'imprimante
Dim Defaut_Impr
Defaut_Impr = Application.ActivePrinter

Application.ActivePrinter = Imprimante

Le code bloque sur cette dernière ligne : la méthode 'ActivePrinter'
de l'objet '_Application' a échoué. Pourtant une Msgbox placée avant le
problème m'indique bien les coordonnées de l'imprimante comme défini
ci-dessus (encadré par les " ").

Merci de votre aide.

Jacques

1 réponse

Avatar
JacquesH
Solution trouvée :

J'ai écrit : BADell 3000 CN RDC Gauche sur Ne01:
dans une cellule de mon fichier "Perso.xls" et maintenant la macro
fonctionne. En fait, c'était les "" qui posaient problème.

Sub Imprime_Couleur_JH()
Application.ScreenUpdating = False
Dim Imprimante As String
Imprimante = Workbooks("Perso.xls").Sheets("Feuil1").[C3].Value

'Modifie l'imprimante
Dim Defaut_Impr
Defaut_Impr = Application.ActivePrinter

Application.ActivePrinter = Imprimante

'Imprime
ActiveSheet.PrintOut Copies:=1, Collate:=True

'Remet l'imprimante par défaut
Application.ActivePrinter = Defaut_Impr

End Sub

Merci à tous ceux qui ont phosphoré sur mon premier message.

Jacques

Bonjour à toutes et tous,

J'ai la macro suivante qui fonctionne très bien pour imprimer la
feuille en cours sur une imprimante couleur et qui revient directement
sur mon imprimante active (merci au forum et à ses archives).

Sub Imprime_Couleur()
'Modifie l'imprimante
Dim Defaut_Impr
Defaut_Impr = Application.ActivePrinter
Application.ActivePrinter = "BADell 3000 CN RDC Gauche sur Ne01:"
'Imprime
ActiveSheet.PrintOut Copies:=1, Collate:=True
'Remet l'imprimante active au début
Application.ActivePrinter = Defaut_Impr
End Sub

J'utilise la même technique dans de nombreuses autres macros en
modifiant parfois légèrement le code.
Mon problème est le suivant : mon ordinateur a été ré-installé et
l'imprimante couleur n'est plus sur le même "port" : No01 au lieu de
Ne03. De plus, à l'avenir le nom de cette imprimante peut changer...
Comme je n'ai pas très envie de changer dans toutes mes macros à
chaque fois, je voudrais faire la chose suivante : saisir dans une
cellule de mon classeur "Perso.xls" les références de l'imprimante :
"BADell 3000 CN RDC Gauche sur Ne01:"
Faire appel directement à cette cellule pour définir l'imprimante.
De cette manière, à l'avenir je n'aurais que cette cellule à modifier.

Sub Imprime_Couleur()
Dim Imprimante As String
Imprimante = Workbooks("Perso.xls").Sheets("Feuil1").[C3].Value

'Modifie l'imprimante
Dim Defaut_Impr
Defaut_Impr = Application.ActivePrinter

Application.ActivePrinter = Imprimante

Le code bloque sur cette dernière ligne : la méthode 'ActivePrinter' de
l'objet '_Application' a échoué. Pourtant une Msgbox placée avant le
problème m'indique bien les coordonnées de l'imprimante comme défini
ci-dessus (encadré par les " ").

Merci de votre aide.

Jacques