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.
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
ç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.

Excel me retourne une erreur à chaque fois à cette ligne:
Application.ActivePrinter = "Canon_brouillon"

Le message d'erreur reçu est:
Run-time error '1404':
Methode 'ActivePrinter' of object '_Application' failed
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.

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.