Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Imprimer un certain nombre d'exemplaires en VBA

7 réponses
Avatar
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.

7 réponses

Avatar
michdenis
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" a écrit dans le message de groupe de 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.
Avatar
FRED
Bonjour,

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

Je teste et vous dit de suite !

Fred.

"michdenis" a écrit dans le message de groupe de
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" a écrit dans le message de groupe de
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.



Avatar
FRED
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" a écrit dans le message de groupe de discussion
:
Bonjour,

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

Je teste et vous dit de suite !

Fred.

"michdenis" a écrit dans le message de groupe de
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" a écrit dans le message de groupe de
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.





Avatar
michdenis
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" a écrit dans le message de groupe de 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" a écrit dans le message de groupe de discussion
:
Bonjour,

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

Je teste et vous dit de suite !

Fred.

"michdenis" a écrit dans le message de groupe de
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" a écrit dans le message de groupe de
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.





Avatar
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" a écrit dans le message de groupe de
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" a écrit dans le message de groupe de
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" a écrit dans le message de groupe de
discussion
:
Bonjour,

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

Je teste et vous dit de suite !

Fred.

"michdenis" a écrit dans le message de groupe de
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" a écrit dans le message de groupe de
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.







Avatar
michdenis
Selon ce que tu exprimes, il serait difficile de faire plus court !



"FRED" a écrit dans le message de groupe de 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" a écrit dans le message de groupe de
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" a écrit dans le message de groupe de
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" a écrit dans le message de groupe de
discussion
:
Bonjour,

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

Je teste et vous dit de suite !

Fred.

"michdenis" a écrit dans le message de groupe de
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" a écrit dans le message de groupe de
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.







Avatar
FRED
Ok, merci donc pour le code.

Bon WE,

FRED.

"michdenis" a écrit dans le message de groupe de
discussion :
Selon ce que tu exprimes, il serait difficile de faire plus court !



"FRED" a écrit dans le message de groupe de
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" a écrit dans le message de groupe de
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" a écrit dans le message de groupe de
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" a écrit dans le message de groupe de
discussion
:
Bonjour,

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

Je teste et vous dit de suite !

Fred.

"michdenis" a écrit dans le message de groupe de
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" a écrit dans le message de groupe de
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.