Impression - Modification imprimante

Le
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 = "\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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JacquesH
Le #4322621
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


Publicité
Poster une réponse
Anonyme