XL 2010 Contourner BeforeSave

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 !

Romain31

XLDnaute Occasionnel
Bonjour à tous,

J'ai un formulaire avec des champs obligatoires à remplir.
Une procédure évènementielle Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean empêche l'enregistrement si certains champs sont vides.

If ThisWorkbook.Sheets("Fiche").Range("B22") = "" Then
Cancel = True
MsgBox "ENREGISTREMENT IMPOSSIBLE - Le domaine fonctionnel n'est pas indiqué"

Existe-t-il un moyen de désactiver temporairement cette procédure (par code VBA) pour faire des modifications (comme effacer les champs obligatoires, par exemple).
J'avais pensé aussi à ouvrir Excel sans activer les macros avec la touche Maj mais cela ne fonctionne pas.

Merci beaucoup et très bonne journée
 
Bonjour Romain,
2 solutions
1)la plus simple dans l'onglet Développeur cliquer dans l'équerre(mode création)
Hop plus d'événements ou macros. Tu peux enregistrer et ensuite recliquer sur l'équerre
2) à taper dans la fenêtre execution et valider par Enter
Application.EnabledEvents=False ensuite bien penser à remettre à True
Bruno
 
Bonjour Bruno,

Merci beaucoup pour ta réponse, j'avais complètement zappé le mode création.
Cela fonctionne mais je suis obligé d'aller dans l'éditeur VBA, ce qui n'est pas grave pour moi mais pas forcément évident, ni élégant pour un utilisateur.

Concernant ta deuxième solution, Application.EnabledEvents=False je vais regarder cela.
Un utilisateur pourrait lancer une macro (qui ferait telle ou telle action) avec enregistrement du fichier. Une fois terminé, il faudrait que Private Sub Workbook_BeforeSave reprenne la main.

Romain
 
Bonjour Romain31, youky,

tu as écrit : « je suis obligé d'aller dans l'éditeur VBA, ce qui n'est pas grave
pour moi mais pas forcément évident, ni élégant pour un utilisateur. »

autre solution, si t'acceptes que l'utilisateur aille sur l'onglet Développeur :


Image.jpg
soan
 
Bonjour Soan,

Merci mais je n'ai pas trop envie de faire un mode d'emploi.
Je préfère un fichier avec des boutons qui exécutent des actions sans être bloquées par cette procédure de fermeture.
En fait, une macro qui désactive cette fameuse macro.
 
ah, ok ; dans ce cas, c'est la solution du Application.EnableEvents = False
mais surtout, ne pas oublier de réactiver les événements dès que possible :
Application.EnableEvents = True.

--------------------------------------------------------------------------------

@youky(BJ) : attention, y'a un d en trop pour Enabled :

Image.jpg

soan
 
Dernière édition:
- 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
Retour