Problème d'enregistrement de fermeture Excel

Résolu
Barbebulle Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
al1_delon Messages postés 259 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Contributeur Dernière intervention   7 276
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   7 276 > Barbebulle Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   25
 
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Save
End Sub
0
Barbebulle Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
il faut que que j'inscrive ces trois lignes dans ma macros ?
0
al1_delon Messages postés 259 Date d'inscription   Statut Membre Dernière intervention   25
 
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   Statut Contributeur Dernière intervention   4 724
 
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   Statut Membre Dernière intervention   25
 
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