XL 2016 Message box avant impression

  • Initiateur de la discussion Initiateur de la discussion zouph57
  • Date de début Date de début

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 !

zouph57

XLDnaute Nouveau
Bonjour,

Je m'excuse de vous déranger, je suis novice en langage VBA et je souhaite lancer une boîte de dialogue lorsque j'appuie sur le bouton "imprimer" dans excel d'une feuille donnée de mon classeur.
J'utilise le code suivant mais je ne comprends pas pourquoi quand je clique sur "oui" dans ma boîte de dialogue, l'impression se lance 2 fois.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Reponse
Reponse = MsgBox("Utilisez-vous une feuille 4 étiquettes ?", vbYesNo + vbQuestion, "Attention")
If Reponse = vbYes Then
Application.EnableEvents = False
Sheets("Blinatumomab_perf_sup_45kg").PrintOut
Application.EnableEvents = True
Else
Cancel = True
End If
End Sub

Pouvez-vous m'aider ?

Merci par avance,

Bonne journée
 
Bonjour
Before print: Avant impression!
Si tu répond oui tu demandes une impression, il s'en suivra une autre impression demandée avant le before.
Tu dois simplement interdire cette imp à la réponse non
Essaie comme-ceci


Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Reponse
Reponse = MsgBox("Utilisez-vous une feuille 4 étiquettes ?", vbYesNo + vbQuestion, "Attention")
If Reponse = vbNo Then Cancel = True


End Sub
 
Merci beaucoup. En effet, ça fonctionne mais comme je suis dans thisWorkbook, la boîte de dialogue apparaît quand je clique sur impression peu importe la feuille sur laquelle je me trouve. Je souhaite que la boîte de dialogue n'apparaissent que quand je suis sur une feuille spécifique de mon classeur. Est-ce possible en étant dans thisWorkbook ?

Encore merci de ta réactivité
 
tu pourrais modifier comme ceci.
Tester la feuille concernée ici feuille "toto"
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Reponse
If ActiveSheet.Name <> "toto" Then Exit Sub
Reponse = MsgBox("Utilisez-vous une feuille 4 étiquettes ?", vbYesNo + vbQuestion, "Attention")
If Reponse = vbNo Then Cancel = True


End Sub
 
- 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

Réponses
4
Affichages
166
Réponses
5
Affichages
774
Compte Supprimé 979
C
Retour