CODE VBA POUR PARAMETRE IMPRIMANTE

Signaler
-
 hurluberlu2 -
Bonjour à tous,
et meilleurs voeux pour 2013(je suis encore dans les temps...)


je suis à la recherche d'une instruction permettant de modifier les parametres d'impression de l'imprimante par defaut.
j'utilise excel 2k3 et(ou) 2k7, et suis donc limité par le language vba.

j'ai bien trouvé une instruction duplex dans vba access, mais elle n'existe pas dans excel.

excel , a priori, n'a pas de commande pour piloter le driver d'impression.

le but:

dans un programme qui permet d'obtenir differentes feuilles excel, je concatene certaine et les imprime sur des imprimantes ( dont je ne connais pas la reference) qui sont par defaut en recto/verso.

Ces documents doivent obligatoirement être en mode recto seul.

pour l'instant, je sèche.

si quelqu'un(e) a une petite idée, merci par avance.

7 réponses

Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
je déplace dans la rubrique "hurluberlu",
pardon VBA...


cantador
Messages postés
7406
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
3 juin 2021
124
Bonjour,

Avec cette instruction tu as toutes les imprimantes de la machine. Tu sélectionnes celle que tu désires et tu la configures:

Application.Dialogs(xlDialogPrinterSetup).Show



@+ Le Pivert
Bonjour Cantador,

désolé, je n'avais pas vu qu'il y a une rubrique spécifique vba.
ceci étant, je ne retrouve pas ma question dedans.
...
Bonjour, Le Pivert

je connais cette instruction, mais elle ne fait qu'ouvrir une boite de dialogue pour selectionner les imprimantes, pas leurs parametres.
je ne souhaite pas passer par cette étape, mais parametrer directement en vba certaines fonctions (recto/verso, N&B etc...).
je pense qu'il faut sortir des bibliotheques excel, et je ne connais pas
celle de windows qui gère le drivers d'impression.

cordialement.
Messages postés
7406
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
3 juin 2021
124
Je ne pense pas que l'on puisse régler l'imprimante recto-verso par macro. Par contre tu peux régler l'impression en noir et blanc avec l'objet PageSetup de la feuille à imprimer comme ceci:

Worksheets("Sheet1").PageSetup.BlackAndWhite = True

En sélectionnant PageSetup et en cliquant sur l'aide F1 tu auras toutes les fonctions en allant dans les propriétés de PageSetup. Qualité du papier, orientation etc.

Enfin voici encore une autre boite de dialogue pour régler l'imprimante qui est différente de la précédente:

Application.Dialogs(xlDialogPrint).Show

Si cela peut faire ton bonheur!

@+ Le Pivert
merci pour ta reponse,

"Le Pivert

"Je ne pense pas que l'on puisse régler l'imprimante recto-verso par macro "

je pense que si, mais en passant par les API WIN32;
ça fait un peu usine à gaz pour pas grand chose, mais je pense que la solution est par là.


je cherche et vous tiens au courant.

cordialement
Messages postés
7406
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
3 juin 2021
124
En parlant d'usine à gaz, j'ai trouvé une solution. Passer la commande sous Word!
Il existe une propriété d'impression recto verso sous Word qui se nomme:

ManualDuplexPrint

et voilà ce que dit l'aide:

Argument de type Variant facultatif.
Affectez-lui la valeur True pour imprimer un document recto verso sur une imprimante sans kit d'impression recto verso.
Si cet argument a pour valeur True, les propriétés PrintBackground et PrintReverse sont ignorées.
Utilisez les propriétés PrintOddPagesInAscendingOrder et PrintEvenPagesInAscendingOrder pour contrôler la sortie lors d'une impression recto verso manuelle.
Il se peut que cet argument ne soit pas disponible, selon la prise en charge de langue (anglais (États-Unis), par exemple) que vous avez sélectionnée ou installée.

Mais cette propriété n'est pas disponible sous Excel.

Cette solution n'est pas la plus rationnelle, mais elle a le mérite d'exister!

@+ Le Pivert
merci LePivert pour ta réponse.

j'ai trouvé un bout de code que je suis entrain de tester dans mon programme.
il utilise les api win32, Librairie "winspool.drv"

je reviens sur le forum dés que j'ai un résultat probant.

cordialement.