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

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

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