Je suis nouveau à Excel et surtout à VBA.
J'ai été longtemps un utilisateur de Lotus 1-2-3 (DOS) et puis de Quattro Pro pour Windows jusqu'à l'été dernier où j'ai changé pour Offfice 2010.
Donc, j'ai un problème avec une macro, pour l'impression, pour changer l'imprimante par défaut.
ça fonctionnait bien au départ, puis j'ai ajouter des choses, et là ça ne fonctionne plus. J'ai changé le nom de l'imprimante et ça ne semble plus fonctionner.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 Sub impression_brouillon() 'impression de la soumission et des quantités de matériaux With ActiveSheet.PageSetup .PrintArea = "A1:G61" .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 End With Dim STDprinter As String STDprinter = Application.ActivePrinter Application.ActivePrinter = "Canon_brouillon" ' change printer ActiveSheet.PrintOut ' prints the active sheet With ActiveSheet.PageSetup .PrintArea = "J9:L20" .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 End With ActiveSheet.PrintOut ' prints the active sheet Application.ActivePrinter = STDprinter ' change back to standard printer End Sub
Excel me retourne une erreur à chaque fois à cette ligne:
Application.ActivePrinter = "Canon_brouillon"
Le message d'erreur reçu est:
J'essaie de lancer la macro à partir d'un bouton qui lance le formulaire, et selon mon choix de bouton radio, l'une des deux macros (identiques, sauf le nom de l'imprimante) se lance pour l'impression de mon document.Run-time error '1404':
Methode 'ActivePrinter' of object '_Application' failed
Il y a un truc niaiseux qui m'échappe... J'ai le bon nom d'imprimante, j'ai essayé [...] "Canon_brouillon on NE:09", mais rien n'y fait, j'ai toujours le même problème.
J'ai trouvé le code sur un autre site, et j'ai regardé ici dans ce fil:
mais ça ne s'appliquait pas vraiment vu que c'était pour Word.
L'imprimante est branchée sur le réseau, connexion IP, sur un port dédié (en fait la même imprimante que j'ai copiée deux fois pour en avoir une avec une cassette de papier fixée à l'avance, ça me semblait plus simple que de trouver le code VBA pour faire ça).
Merci de vos suggestions.
Partager