OVH Cloud OVH Cloud

Printer.ColorMode

5 réponses
Avatar
sylvain
Bonjour,
Sous access 2002, la modification du Printer.ColorMode d'un =E9tat ne
fonctionne pas correctement.
La propri=E9t=E9 de l'=E9tat est correctement modifi=E9e (v=E9rification par
msgbox de la propri=E9t=E9 ColorMode avant et apr=E8s modif.du printer de
l'=E9tat), comme d=E9crit ci-dessous
Dim prt As Printer
Set prt =3D Application.Printers("nom_imprimante")
With prt
.ColorMode =3D z2l_couleur 'zone de liste avec 1 (N&B) ou 2
(Couleur)
End With
DoCmd.OpenReport "eta1", acViewPreview
MsgBox "Reports("eta1").Printer.ColorMode =3D " &
Reports("eta1").Printer.ColorMode
Reports("eta1").Printer =3D prt
MsgBox "Reports("eta1").Printer.ColorMode =3D " &
Reports("eta1").Printer.ColorMode

Je lance ensuite DoCmd.PrintOut acPages, ...
et la couleur d'impression (couleur ou N&B) appliqu=E9e est celle
d=E9finie dans les propri=E9t=E9s de l'imprimant (panneau de config.),
sans tenir compte des modif.via printer.ColorMode (alors que toutes les
autres modif.du printer : PaperSize, PaperBin, ...sont effectivement
modifi=E9es)

Qlq'1 a-t-il une solution ?

Merci

Sylvain

5 réponses

Avatar
3stone
Salut,

"sylvain"
Sous access 2002, la modification du Printer.ColorMode d'un état ne
fonctionne pas correctement.
La propriété de l'état est correctement modifiée (vérification par
msgbox de la propriété ColorMode avant et après modif.du printer de
l'état), comme décrit ci-dessous
Dim prt As Printer
Set prt = Application.Printers("nom_imprimante")
With prt
.ColorMode = z2l_couleur 'zone de liste avec 1 (N&B) ou 2
(Couleur)
End With
DoCmd.OpenReport "eta1", acViewPreview
MsgBox "Reports("eta1").Printer.ColorMode = " &
Reports("eta1").Printer.ColorMode
Reports("eta1").Printer = prt
MsgBox "Reports("eta1").Printer.ColorMode = " &
Reports("eta1").Printer.ColorMode

Je lance ensuite DoCmd.PrintOut acPages, ...
et la couleur d'impression (couleur ou N&B) appliquée est celle
définie dans les propriétés de l'imprimant (panneau de config.),
sans tenir compte des modif.via printer.ColorMode (alors que toutes les
autres modif.du printer : PaperSize, PaperBin, ...sont effectivement
modifiées)
------------------


Regarde ceci :
http://officesystem.access.free.fr/vba/imprimantes.htm

mais après quelques recherches, il "semblerait" qu'il pourrait y avoir
des problèmes avec certaines imprimantes et pas avec d'autres...

As tu fait le test avec une autre imprimante (pour utiliser d'un autre pilote) ?


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
sylvain
Merci de ta réponse Pierre,

Oui j'ai fait le test avec 2 autres imprimantes "physiques" (d'autres
marques, laser et jet d'encre), et ça ne fonctionne pas mieux.
Même au préalable le changement suivant ne sert à rien :
Printers("nom_imprimante").ColorMode = acPRCMMonochrome ou acPRCMColor

ça fonctionne uniquement en manuel, en ouvrant la fenêtre
"propriété" de la boite d'impression et en changeant couleur vers N&B
(ou vice versa). Mais le but est de gérer tout ça en VBA !

Cependant, j'ai aussi testé avec une imprimante virtuelle (PDFcreator
pour ne pas la nommer) et la modification de la couleur a été prise
en compte pour la génération du PDF...

Je reste perplexe !
Avatar
3stone
Salut,

"sylvain"

| Mais le but est de gérer tout ça en VBA !

Ce qui est bizarre, c'est que beaucoup trouve que cela fonctionne nickel
et que quelques-uns seulement disent que cela ne fonctionne pas du tout.

Si je trouve une piste plus précise, je le mettrai ici.


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
sylvain
Bon, en changeant le driver de l'imprimante, ça fonctionne !
Merci de ton aide.
Avatar
3stone
Salut,

"sylvain"
Bon, en changeant le driver de l'imprimante, ça fonctionne !



Merci pour le retour !

Cela confirme que le problème vient bien du pilote d'imprimante.


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/