Interdire la sauvegarde si cellule x non vide

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 !

herve80

XLDnaute Occasionnel
Bonjour,

(La dernière fois, on s'est énervé parce que je soulignais votre mérite de faire du bénévolat, je me contenterai donc de dire "merci" 🙂 )

Comment dire à Excel : "si la cellule A2 de la feuille 3 n'est pas vide, ne sauvegarde pas ce classeur. Sinon, sauvegarde" ?

Merci de votre aide (précieuse, j'insiste)
 
Re : Interdire la sauvegarde si cellule x non vide

Bonjour Hervé, bonjour le forum,

Essaie comme ça :
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Sheets(3).Range("A2").Value = "" Then Cancel = True
End Sub
 
Re : Interdire la sauvegarde si cellule x non vide

Bonsoir Hervé, bonsoir le forum,

Oui, tu n'avais pas précisé que tu voulais ça à la fermeture. Il demandait d'enregistrer mais l'interdisait (c'est vrai que c'était couillon)...

Essaie alors comme en combinant les deux macros :
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Sheets(3).Range("A2").Value = "" Then ThisWorkbook.Close savechanges:=False
End Sub
 
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Sheets(3).Range("A2").Value = "" Then Cancel = True
End Sub
 
Re : Interdire la sauvegarde si cellule x non vide

Robert,

tu fais le contraire de ce qui est demandé désolé 😉
Tu dis ici : "si c'est pas vide sauvegarde, sinon sauvegarde pas".

Je voudrais : "si c'est pas vide sauvegarde pas, sinon sauvegarde"
Essaye sous excel, tu verras

nb: je vais partir, merci de regarder à ça pour lundi après-midi max.

Merci quand même c'est sympa 😉
 
Re : Interdire la sauvegarde si cellule x non vide

Bonsoir Hervé, bonsoir le forum,

Désolé. Remplace juste le premier = par <> dans les deux codes...


Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Sheets(3).Range("A2").Value <> "" Then ThisWorkbook.Close savechanges:=False
End Sub
 
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Sheets(3).Range("A2").Value <> "" 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
3
Affichages
177
Réponses
6
Affichages
467
Retour