XL 2021 Problème d'impression

gui22

XLDnaute Nouveau
Bonjour à tous,

Je rencontre un petit problème lors de l'impression de mon document (je ne peux pas le partager le fichier car il est confidentiel) , j'ai pu faire une macro qui fonctionne mais le document s'imprime en double.
Voici la macro :

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Reponse
Reponse = MsgBox("Avez-vous organisé les sauts de pages ?" & ActiveSheet.[F73] & " ?", _
vbYesNo + vbCritical, "Avertissement")
If Reponse = vbYes Then
Application.EnableEvents = False
ActiveSheet.PrintPreview
Application.EnableEvents = True
Else
Cancel = True
End If
End Sub

J'aimerais savoir si le code n'est pas correcte.

Cordialement.
 
Solution
Bonjour Guy,
Lorsque vous faites Imprimer vous lancer la visualisation mais lorsque vous faites Imprimer dans la feuille de visualisation vous relancez cette même macro, donc une seconde fois.
Pour éviter ça mettez un Cancel=True juste après le PrintPreview pour invalider la seconde :
VB:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Reponse
Reponse = MsgBox("Avez-vous organisé les sauts de pages ?" & ActiveSheet.[F73] & " ?", _
vbYesNo + vbCritical, "Avertissement")
If Reponse = vbYes Then
    Application.EnableEvents = False
    ActiveSheet.PrintPreview
    Cancel = True
    Application.EnableEvents = True
Else
    Cancel = True
End If
End Sub

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Guy,
Lorsque vous faites Imprimer vous lancer la visualisation mais lorsque vous faites Imprimer dans la feuille de visualisation vous relancez cette même macro, donc une seconde fois.
Pour éviter ça mettez un Cancel=True juste après le PrintPreview pour invalider la seconde :
VB:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Reponse
Reponse = MsgBox("Avez-vous organisé les sauts de pages ?" & ActiveSheet.[F73] & " ?", _
vbYesNo + vbCritical, "Avertissement")
If Reponse = vbYes Then
    Application.EnableEvents = False
    ActiveSheet.PrintPreview
    Cancel = True
    Application.EnableEvents = True
Else
    Cancel = True
End If
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
315 093
Messages
2 116 138
Membres
112 669
dernier inscrit
Guigui2502