Interdire la sauvegarde si cellule x non vide

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)
 

Robert

XLDnaute Barbatruc
Repose en paix
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
 

Robert

XLDnaute Barbatruc
Repose en paix
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
 

herve80

XLDnaute Occasionnel
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 ;)
 

Robert

XLDnaute Barbatruc
Repose en paix
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
 

Discussions similaires

Réponses
10
Affichages
206

Statistiques des forums

Discussions
312 236
Messages
2 086 479
Membres
103 232
dernier inscrit
logan035