Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

BeforePrint qui ne marche pas

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:

Evelynetfrancois

XLDnaute Impliqué
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
 

catoucat

XLDnaute Nouveau
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...
 

Pierrot93

XLDnaute Barbatruc
Re : BeforePrint qui ne marche pas

Bonjour Catoucat, E et F,

Chez moi, excel2000, ton code placé dans ThisWorkbook fonctionne parfaitement, si je clique sur "annuler", aucune impression se fait !!!

Bonne journée
@+
 

Evelynetfrancois

XLDnaute Impliqué
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
 

catoucat

XLDnaute Nouveau
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
 

catoucat

XLDnaute Nouveau
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)?
 

Pierrot93

XLDnaute Barbatruc
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
@+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…