BeforePrint qui ne marche pas

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

catoucat

XLDnaute Nouveau
Bonjour,

Je voudrais ajouter un message quand quelqu'un veut imprimer et si la personne clique sur Cancel, cela n'imprime pas. J'ai mis pour l'instant

Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    If MsgBox("Have you checked the number of pallets?", vbOKCancel, "Warning") = vbCancel Then Cancel = True
End Sub

Sauf qu'il imprime sans rien me demander... 😕 Est-ce que quelqu'un aurait une petite idee avant que j'epuise la foret d'a cote avec mes tests? 😀 J'ai essaye avec juste la messagebox et un Cancel = True sans de IF mais il me dit qu'il y a une erreur de syntaxe dans la messagebox sans faire le cancel
 
Dernière édition:
Re : BeforePrint qui ne marche pas

bonjour catoucat

vite fait
voici une syntaxe parmis d autre
je ne connais pas Private Sub Workbook_BeforePrint(Cancel As Boolean)
je suppose que ca doit imprimer le classeur complet???????

Private Sub Imprimer_classeur()
RETOUR = MsgBox("Have you checked the number of pallets?", 4 + vbInformation, "Warning")
If RETOUR = vbYes Then
Application.ScreenUpdating = False
For Each Feuille In Sheets
Feuille.PrintOut
Next
End If
Application.ScreenUpdating = True
End Sub

a +

E et F
 
Re : BeforePrint qui ne marche pas

En fait je veux lancer le message quand on essaye d'imprimer la feuille 1 qui s'appelle INVOICE (Sheet1) donc j'ai mis le code precedent dans la fenetre VBA correspondant a cette feuille.

Par contre j'ai Office en anglais donc Imprimer_Classeur doit etre en fait la version francaise de Workbook_BeforePrint 🙂 Je ne vois donc pas pourquoi mon code ne s'execute pas du tout, peut-etre que je l'ai mis a un mauvais endroit? J'ai essaye de le mettre sur un bouton et mettre le code sur le code du bouton dans un module et ca marche. Je dois donc mal placer ma procedure...
 
Re : BeforePrint qui ne marche pas

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If MsgBox("Have you checked the number of pallets?", vbOKCancel, "Warning") = vbCancel Then Cancel = True
End Sub
j ai essayeé ta syntaxe (que je viens de comprendre !!!)
elle marche bien chez moi
je l ai mise dans ThisWorkbook

E et F
 
Re : BeforePrint qui ne marche pas

Ouille c'est a n'y rien comprendre alors! Est-ce que ca marche quand tu fais apercu avant impression aussi? (comme ca au moins je pourrai faire mes tests avec ca!)

J'ai protege ma feuille mais je ne pense pas que ca joue, ca ne change rien quand je la deprotege... J'ai Access 2003 en anglais sinon
 
Re : BeforePrint qui ne marche pas

Ahhh En fait j'avais mis dans Modules et dans Invoice(Sheet1) mais pas dans ThisWorkbook... quelle est la difference exactement? Maintenant ca marche! merci 😉 Et la je veux ajouter la meme chose sur l'evenement "Enregistrer" je le mettrai dans ThisWorkbook aussi ou bien sur Invoice(Sheet1)?
 
Re : BeforePrint qui ne marche pas

Re Catoucat, E et F

L'evenement doit toujours être placé dans le module du classeur ou de la feuille concerné, le code associé se délanche alors. Pour l'evenement "BeforeSave" il ne peut être placé que dans ThisWorkbook, d'ailleurs tu remarqueras certainement que cet evenement n'existe pas dans les modules de feuilles.

Bonne journée
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Y
Réponses
7
Affichages
1 K
Y
A
Réponses
1
Affichages
797
A
Retour