Problème d'enregistrement de fermeture Excel

Résolu/Fermé
Barbebulle Messages postés 7 Date d'inscription jeudi 25 décembre 2008 Statut Membre Dernière intervention 11 janvier 2009 - 29 déc. 2008 à 13:40
al1_delon Messages postés 259 Date d'inscription samedi 27 décembre 2008 Statut Membre Dernière intervention 16 octobre 2009 - 29 déc. 2008 à 22:13
Bonjour,

Je voudrai savoir comment faire pour que sur certaines Macros, lors de la fermeture d'un classeur Excel celui-ci n'enregistre pas les modification effectue par ces Macros.

Merci d'avance.
A voir également:

5 réponses

eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
29 déc. 2008 à 19:32
Bonsoir,

Tout dépend de ce que tu désires exactement...
Si tu veux éliminer les modifications apportées au classeur par une macro mais pouvoir quand même sauvegarder les modifs faites manuellement c'est presque mission impossible.
Ca serait à toi de modifier la macro pour rétablir l'état du classeur avant la macro, tout dépend des cas de figure.

Si c'est empecher l'apparition de la boite de dialogue de sauvegarde tu peux mettre :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Workbooks("Classeur2.xls").Saved = True
End Sub

Si c'est pour empecher de faire toute sauvegarde tu peux mettre :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Cancel = True
End Sub
ou désactiver les outils et menus concernés mais là ça demande un peu de recherche...

Tu peux aussi completer par des tests pour autoriser la sauvegarde dans certains cas.

eric
1
Barbebulle Messages postés 7 Date d'inscription jeudi 25 décembre 2008 Statut Membre Dernière intervention 11 janvier 2009
29 déc. 2008 à 21:30
Bonsoir,

En fait, je dois pouvoir effectuer des ajouts d'éléments dans ce classeur et les enregistrer mais interdire les modifications faite par certains utilisateurs, qui eux utiliserons ces macros de filtrages et mise en formes, de tel manière que lors de l'ouverture du classeur ont puisse avoir l'intégralité de la feuille visible et être sur une cellule proche de la date à la quelle on ouvre ce classeur....
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248 > Barbebulle Messages postés 7 Date d'inscription jeudi 25 décembre 2008 Statut Membre Dernière intervention 11 janvier 2009
29 déc. 2008 à 22:05
A ce moment là il faut tester l'utilisateur...
Tu peux utiliser application.username, si ça ne suffit pas il y a une autre méthode (plus compliquée) pour récupérer l'utilisateur windows
0
al1_delon Messages postés 259 Date d'inscription samedi 27 décembre 2008 Statut Membre Dernière intervention 16 octobre 2009 25
29 déc. 2008 à 16:53
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Save
End Sub
0
Barbebulle Messages postés 7 Date d'inscription jeudi 25 décembre 2008 Statut Membre Dernière intervention 11 janvier 2009
29 déc. 2008 à 17:02
il faut que que j'inscrive ces trois lignes dans ma macros ?
0
al1_delon Messages postés 259 Date d'inscription samedi 27 décembre 2008 Statut Membre Dernière intervention 16 octobre 2009 25
29 déc. 2008 à 17:06
Non la sub existe dans Vba dans la rubrique Vbaproject -Thisworkbook - Workbook (sous général).
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 712
29 déc. 2008 à 19:04
bonjour

lors de la fermeture d'un classeur Excel celui-ci n'enregistre pas les modification effectue par ces Macros

Faudrait peut-être relire la question car avec la macro fournie, les modification effectue par ces Macros seront obligatoirement enregistrées
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
al1_delon Messages postés 259 Date d'inscription samedi 27 décembre 2008 Statut Membre Dernière intervention 16 octobre 2009 25
29 déc. 2008 à 22:13
Pour éviter toute modification par les autres users:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

If application.username <> "tonuser" then
Thisworkbook.close false
else
Thisworkbook.close true
end if

End Sub

Mais attention, si un utilisateur clique sur "Fichier-Enregistrer" avant la fermeture c'est foutu.
0