beforeprint avec 2 impressions
Le
Fredo(67)

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.
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.
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.
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 :
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
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
---------------------------------------------------------------
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 :
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
---------------------------------------------------------------
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 :