Imprimer un certain nombre d'exemplaires en VBA
Le
FRED
Bonjour,
Je cherche à faire la chose suivante en VBA:
- Lancer une impression de trois exemplaires (bon, je pense que ça ne doit
pas être le plus dur :-))
- Sur les deux derniers exemplaires, remplacer le mot "Original", par
"Copies" (et là, je sèche !!).
Merci pour votre aide,
FRED.
Je cherche à faire la chose suivante en VBA:
- Lancer une impression de trois exemplaires (bon, je pense que ça ne doit
pas être le plus dur :-))
- Sur les deux derniers exemplaires, remplacer le mot "Original", par
"Copies" (et là, je sèche !!).
Merci pour votre aide,
FRED.

Poser une question


Pour la question 1,
ThisDocument.PrintOut Copies:=3, Collate:=True
Dans les 2 procédures soumises, on peut remplacer
ThisDocument par ActiveDocument
Avec ThisDocument : La procédure est écrite dans un module
du classeur à imprimer
avec ActiveDocument : C'est le document affiché à l'écran qui s'imprime
Question II - Replacement :
(la fonction replace n'existe pas avant office 2000 (à vérifier)
'-------------------------------------
Sub test()
'Respect de la casse
ThisDocument.Range = Replace(ThisDocument.Range, "Original", "Copies", 1, , 0)
'Sans égard à la casse des caractères recherchés et remplacés
ThisDocument.Range = Replace(ThisDocument.Range, "Original", "Copies", 1, , 1)
End Sub
'-------------------------------------
"FRED"
Bonjour,
Je cherche à faire la chose suivante en VBA:
- Lancer une impression de trois exemplaires (bon, je pense que ça ne doit
pas être le plus dur :-))
- Sur les deux derniers exemplaires, remplacer le mot "Original", par
"Copies" (et là, je sèche !!).
Merci pour votre aide,
FRED.
Génial, cela ressemble exactement à ce que je cherche !!
Je teste et vous dit de suite !
Fred.
"michdenis" discussion :
C'est vraiment parfait et cela fonctionne parfaitement. Merci.
En revanche, je suis obligé de faire plusieurs séquences (cf ci-dessous), ce
qui ne me pose absolument aucun problème, mais je me demande juste par
curiosité si il n'y a pas d'autres méthode :
Sub Impression()
ActiveDocument.PrintOut Copies:=1, collate:=True
ActiveDocument.Range = Replace(ThisDocument.Range, "Original", "Copie", 1, ,
0)
ActiveDocument.PrintOut Copies:=2, collate:=True
ActiveDocument.Range = Replace(ThisDocument.Range, "Copie", "Original", 1, ,
0)
End Sub
FRED.
"FRED" :
il est difficile de le déduire d'une macro
ce que le demandeur veut quand la macro publiée
ne le satisfait pas totalement !
"FRED" OGsvR$
Bonjour,
C'est vraiment parfait et cela fonctionne parfaitement. Merci.
En revanche, je suis obligé de faire plusieurs séquences (cf ci-dessous), ce
qui ne me pose absolument aucun problème, mais je me demande juste par
curiosité si il n'y a pas d'autres méthode :
Sub Impression()
ActiveDocument.PrintOut Copies:=1, collate:=True
ActiveDocument.Range = Replace(ThisDocument.Range, "Original", "Copie", 1, ,
0)
ActiveDocument.PrintOut Copies:=2, collate:=True
ActiveDocument.Range = Replace(ThisDocument.Range, "Copie", "Original", 1, ,
0)
End Sub
FRED.
"FRED" :
Sur le premier le mot "Original" est laissé tel quel, sur les deux autres,
il est remplacé par "copies" (c'est pour remplacer des liasses Carbonne).
FRED
"michdenis" discussion : #