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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #20957641
Bonjour,

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.
FRED
Le #20958011
Bonjour,

Génial, cela ressemble exactement à ce que je cherche !!

Je teste et vous dit de suite !

Fred.

"michdenis" discussion :
Bonjour,

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" discussion :

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.



FRED
Le #20963611
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" :
Bonjour,

Génial, cela ressemble exactement à ce que je cherche !!

Je teste et vous dit de suite !

Fred.

"michdenis" discussion :
Bonjour,

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" discussion :

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.





michdenis
Le #20964401
Si tu expliquais ce que tu veux faire...
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" :
Bonjour,

Génial, cela ressemble exactement à ce que je cherche !!

Je teste et vous dit de suite !

Fred.

"michdenis" discussion :
Bonjour,

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" discussion :

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.





FRED
Le #20964801
Lancer une impression d'un document, qui imprime trois exemplaires.
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 : #
Si tu expliquais ce que tu veux faire...
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" discussion :
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" discussion
:
Bonjour,

Génial, cela ressemble exactement à ce que je cherche !!

Je teste et vous dit de suite !

Fred.

"michdenis" discussion :
Bonjour,

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" discussion :

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.







michdenis
Le #20966181
Selon ce que tu exprimes, il serait difficile de faire plus court !



"FRED"
Lancer une impression d'un document, qui imprime trois exemplaires.
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 : #
Si tu expliquais ce que tu veux faire...
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" discussion :
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" discussion
:
Bonjour,

Génial, cela ressemble exactement à ce que je cherche !!

Je teste et vous dit de suite !

Fred.

"michdenis" discussion :
Bonjour,

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" discussion :

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.







FRED
Le #20978461
Ok, merci donc pour le code.

Bon WE,

FRED.

"michdenis" discussion :
Selon ce que tu exprimes, il serait difficile de faire plus court !



"FRED" discussion :

Lancer une impression d'un document, qui imprime trois exemplaires.
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 : #
Si tu expliquais ce que tu veux faire...
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" discussion :
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" discussion
:
Bonjour,

Génial, cela ressemble exactement à ce que je cherche !!

Je teste et vous dit de suite !

Fred.

"michdenis" discussion :
Bonjour,

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" discussion :

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.









Publicité
Poster une réponse
Anonyme