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
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
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...
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
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
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)?
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.