Rapport de message :*
 

Re: Sauvegarde conditionnelle avec msgbox

Titre du sujet : Re: Sauvegarde conditionnelle avec msgbox
par myDearFriend! le 31/05/2008 11:38:32

Bonjour Ghandra, spitnolan08, le Forum,

L'évènement Workbook_BeforeSave() possède un argument Cancel (de type Boolean). Tu devrais donc pouvoir faire comme ceci :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As BooleanCancel As Boolean)
    If 
Sheets("Janvier").AutoFilter.Filters(1).On Then
        MsgBox 
"Pas de sauvegarde possible sans avoir enlevé les filtres ^^"
        
Cancel True
    End 
If
End Sub

A noter que tu peux supprimer du même coup l'utilisation de l'évènement Workbook_BeforeClose() qui ne devrait plus servir dans ce cas.
Note également que ce code ne teste que le filtre en première colonne de la seule feuille "Janvier".

Par ailleurs, plutot que d'afficher un message et empêcher la sauvegarde, tu pourrais aussi imposer la désactivation du filtre par macro avant sauvegarde (bien sûr, cette dernière méthode risque fort de ne pas être très appréciée des utilisateurs lorsqu'ils sauvegardent le classeur en séance de travail sans le fermer pour autant).

Cordialement,