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

beforeprint avec 2 impressions

7 réponses
Avatar
Fredo(67)
Bonjour =E0 tous

j'essaye d'utiliser la commande beforeprint mais sans succ=E8s

Je cherche =E0 faire la chose suivante :
Quand l'utilisateur appuie sur l'imprimante
cela note "Exemplaire Compta" dans la cellule P16
cela lance l'impression
cela note "Exemplaire TCE" en P16
cela lance l'impression
cela note "" en p16

fin de la proc=E9dure

j'ai cr=E9=E9 ceci mais cela m'imprime 3 exemplaires sans faire la modif de=
texte

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Range("p16").Value =3D "Exemplaire COMPTA"
ActiveWindow.SelectedSheets.PrintOut Copies:=3D1
Range("p16").Value =3D "Exemplaire TCE"
ActiveWindow.SelectedSheets.PrintOut Copies:=3D1
Range("p16").Value =3D ""
End Sub

o=F9 me trompe-je ?

Merci de votre aide.

7 réponses

Avatar
MichD
Bonjour,

Copie cette procédure dans le ThisWorkbook de ton classeur.

La procédure est limitée à une seule feuille "FEUIL1" dans
mon exemple. (Attention modifie le nom de l'onglet de la
feuille dans la procédure en utilisant seulement des majuscules).

Lorsque cela fonctionne comme tu le veux, tu remplaces les commandes
printpreview par printout.

'------------------------------------
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Sh As Worksheet
For Each Sh In ActiveWindow.SelectedSheets
If UCase(Sh.Name) = "FEUIL1" Then
Application.EnableEvents = False
For A = 1 To 2
Select Case A
Case 1
Range("P16") = "Exemplaire Compta"
Sh.PrintPreview 'à remplacer par .PrintOut
Case 2
Range("P16") = "Exemplaire TCE"
Sh.PrintPreview 'à remplacer par .PrintOut
End Select
Next
Cancel = True
Application.EnableEvents = True
End If
Next
End Sub
'------------------------------------




MichD
---------------------------------------------------------------
"Fredo(67)" a écrit dans le message de groupe de discussion :


Bonjour à tous

j'essaye d'utiliser la commande beforeprint mais sans succès

Je cherche à faire la chose suivante :
Quand l'utilisateur appuie sur l'imprimante
cela note "Exemplaire Compta" dans la cellule P16
cela lance l'impression
cela note "Exemplaire TCE" en P16
cela lance l'impression
cela note "" en p16

fin de la procédure

j'ai créé ceci mais cela m'imprime 3 exemplaires sans faire la modif de
texte

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Range("p16").Value = "Exemplaire COMPTA"
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Range("p16").Value = "Exemplaire TCE"
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Range("p16").Value = ""
End Sub

où me trompe-je ?

Merci de votre aide.
Avatar
Fredo(67)
Merci MichD
cela marche parfaitement

et en Elevant le critère " If UCase(Sh.Name) = "FEUIL1" Then" ainsi que le end if à la fin

cette fonction marche avec toutes les feuilles de mon fichier....

merci





Le mardi 12 novembre 2013 16:06:35 UTC+1, Fredo(67) a écrit :
Bonjour à tous



j'essaye d'utiliser la commande beforeprint mais sans succès



Je cherche à faire la chose suivante :

Quand l'utilisateur appuie sur l'imprimante

cela note "Exemplaire Compta" dans la cellule P16

cela lance l'impression

cela note "Exemplaire TCE" en P16

cela lance l'impression

cela note "" en p16



fin de la procédure



j'ai créé ceci mais cela m'imprime 3 exemplaires sans faire la modif de texte



Private Sub Workbook_BeforePrint(Cancel As Boolean)

Range("p16").Value = "Exemplaire COMPTA"

ActiveWindow.SelectedSheets.PrintOut Copies:=1

Range("p16").Value = "Exemplaire TCE"

ActiveWindow.SelectedSheets.PrintOut Copies:=1

Range("p16").Value = ""

End Sub



où me trompe-je ?



Merci de votre aide.
Avatar
Fredo(67)
Ok
Petite question de mon collègue (casse pied)

y'a t'il moyen de ne lancer la macro que lors d'une demande d'impression
et pas lors d'une demande d’aperçu avant impression ?


Merci

Le mardi 12 novembre 2013 16:06:35 UTC+1, Fredo(67) a écrit :
Bonjour à tous



j'essaye d'utiliser la commande beforeprint mais sans succès



Je cherche à faire la chose suivante :

Quand l'utilisateur appuie sur l'imprimante

cela note "Exemplaire Compta" dans la cellule P16

cela lance l'impression

cela note "Exemplaire TCE" en P16

cela lance l'impression

cela note "" en p16



fin de la procédure



j'ai créé ceci mais cela m'imprime 3 exemplaires sans faire la modif de texte



Private Sub Workbook_BeforePrint(Cancel As Boolean)

Range("p16").Value = "Exemplaire COMPTA"

ActiveWindow.SelectedSheets.PrintOut Copies:=1

Range("p16").Value = "Exemplaire TCE"

ActiveWindow.SelectedSheets.PrintOut Copies:=1

Range("p16").Value = ""

End Sub



où me trompe-je ?



Merci de votre aide.
Avatar
MichD
Toi et ton collègue avez lu ceci dans la procédure :

Sh.PrintPreview 'à remplacer par .PrintOut

Ceci signifie que tu remplaces à 2 endroits dans la procédure
Sh.PrintOut au lieu de Sh.PrintPreview

Et l'impression va se lancer directement sans passer par le mode aperçu
avant impression.


MichD
---------------------------------------------------------------
Avatar
Fredo(67)
Non, en fait ce que je voulais dire c'est que

j'ai fait la modif comme tu l'as décrite dans ton mail, et cela marche
mais quand je clique sur aperçu avant impression, cela lance également la macro.

Ce que je voudrais c'est qu'elle ne se lance qu'au clique de IMPRIMER

est-ce plus clair ?


Le mardi 12 novembre 2013 16:06:35 UTC+1, Fredo(67) a écrit :
Bonjour à tous



j'essaye d'utiliser la commande beforeprint mais sans succès



Je cherche à faire la chose suivante :

Quand l'utilisateur appuie sur l'imprimante

cela note "Exemplaire Compta" dans la cellule P16

cela lance l'impression

cela note "Exemplaire TCE" en P16

cela lance l'impression

cela note "" en p16



fin de la procédure



j'ai créé ceci mais cela m'imprime 3 exemplaires sans faire la modif de texte



Private Sub Workbook_BeforePrint(Cancel As Boolean)

Range("p16").Value = "Exemplaire COMPTA"

ActiveWindow.SelectedSheets.PrintOut Copies:=1

Range("p16").Value = "Exemplaire TCE"

ActiveWindow.SelectedSheets.PrintOut Copies:=1

Range("p16").Value = ""

End Sub



où me trompe-je ?



Merci de votre aide.
Avatar
MichD
Lorsque tu cliques sur la commande "Aperçu avant impression" ou "Imprimer"
la procédure événementielle du thisworkbook est déclenchée.
"Private Sub Workbook_BeforePrint(Cancel As Boolean)"

Ce que tu peux faire, tu peux extraire la macro de ce module et la mettre
dans un module standard. Lorsque tu voudras imprimer, tu pourras le faire
en appelant la macro dans la fenêtre Alt + F8 ou en mettant un bouton
dans la feuille qui est affecté de cette macro.

'----------------------------------------
Sub Imprimer()
Dim Sh As Worksheet
For Each Sh In ActiveWindow.SelectedSheets
If UCase(Sh.Name) = "FEUIL1" Then
Application.EnableEvents = False
For a = 1 To 2
Select Case a
Case 1
Range("P16") = "Exemplaire Compta"
Sh.PrintPreview 'à remplacer par .PrintOut
Case 2
Range("P16") = "Exemplaire TCE"
Sh.PrintPreview 'à remplacer par .PrintOut
End Select
Next
Application.EnableEvents = True
End If
Next
End Sub
'----------------------------------------

Il est possible de faire ce que tu veux si tu décides de modifier le
code des commandes. Voici un excellent site internet sur le sujet:
http://www.rondebruin.nl/win/section2.htm

Moi, dans le cadre d'un forum, je ne vais pas m'investir dans cela!


MichD
---------------------------------------------------------------
Avatar
Fredo(67)
Pas de soucis MichD

je vais regarder ce que cela donne,

je te remercie encore pour ton aide.



Le mercredi 13 novembre 2013 15:25:32 UTC+1, MichD a écrit :
Lorsque tu cliques sur la commande "Aperçu avant impression" ou "Imprim er"

la procédure événementielle du thisworkbook est déclenchée.

"Private Sub Workbook_BeforePrint(Cancel As Boolean)"



Ce que tu peux faire, tu peux extraire la macro de ce module et la mettre

dans un module standard. Lorsque tu voudras imprimer, tu pourras le faire

en appelant la macro dans la fenêtre Alt + F8 ou en mettant un bouton

dans la feuille qui est affecté de cette macro.



'----------------------------------------

Sub Imprimer()

Dim Sh As Worksheet

For Each Sh In ActiveWindow.SelectedSheets

If UCase(Sh.Name) = "FEUIL1" Then

Application.EnableEvents = False

For a = 1 To 2

Select Case a

Case 1

Range("P16") = "Exemplaire Compta"

Sh.PrintPreview 'à remplacer par .PrintOut

Case 2

Range("P16") = "Exemplaire TCE"

Sh.PrintPreview 'à remplacer par .PrintOut

End Select

Next

Application.EnableEvents = True

End If

Next

End Sub

'----------------------------------------



Il est possible de faire ce que tu veux si tu décides de modifier le

code des commandes. Voici un excellent site internet sur le sujet:

http://www.rondebruin.nl/win/section2.htm



Moi, dans le cadre d'un forum, je ne vais pas m'investir dans cela!





MichD

---------------------------------------------------------------