Bonjour,
Je me permets de m'adresser à vous car après maintes recherches sur le NET et questions à GOOGLE, je n'ai rien trouvé de pertinent.
Voici le contexte :
Je me suis fait un classeur avec 1 feuille pour gérer des opérations que je devais répéter plusieurs fois par jour.
Dans les cellules de la feuille, il y a des formules et j'ai fait un peu de VBA dans un module pour me faire des fonctions simples que j'utilise dans mes formules.
Cela fonctionne très bien et je suis satisfait de ce que j'ai réussi à faire.
MAIS IL NE FAUT JAMAIS ENREGISTRER LES MODIFICATIONS AYANT ETE EFFECTUEES.
Donc, tant que j'étais le seul à m'en servir ... il n'y avait pas de pb car je ne faisais jamais l'une des actions suivantes :
1) MENU / FICHIER / ENREGISTRER
ou
2) MENU / FICHIER / ENREGISTRER SOUS
et
3) je répondais TOUJOURS "ne pas enregistrer" quand en quittant la boite de dialogue EXCEL me signalait que je n'avais pas enregistré mes modifications.
Mais maintenant je ne suis plus le seul à l'utiliser.
Et si MOI je faisais très attention, ce n'est malheureusement pas le cas de mes collègues.
J'ai donc cherché à gérer ou plutot intercepter ces 3 actions en VBA.
J'ai commencé à écrire quelquechose en utilisant l'event Workbook_Beforesave
J'ai réussi à traiter le cas 1
Mais je n'arrive pas à traiter le cas 2 dans sa globalité.
En effet j'arrive à intercepter l'enregistrer sous en détectant SAVEASUI = true
mais j'ai beau forcer
cancel = true
et
saveasui = false
JE NE RETOURNE JAMAIS SUR LA FEUILLE de mon classeur !
L'interface EXCEL reste bloquée sur l'écran ENREGISTRER SOUS ... avec la liste des "RECENTS" ou du bouton parcourir.
d'où ma question :
que faut il faire dans la proc beforesave pour qu'excel revienne à la feuille de mon classeur
plutot que de rester bloqué sur l'écran ENREGISTRER SOUS.
(alors que ça marche très bien pour enregistrer : je l'intercepte, je l'annule et EXCEL me rend la mais sur ma feuille)
Pour info, voici le code de ma Proc Beforesave :
Merci d'avance de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) MsgBox "Vous ne pouvez pas sauvegarder ce classeur" If SaveAsUI = True Then SaveAsUI = False End If Cancel = True End Sub
Cdt.
Philou75
Partager