Problème d'enregistrement de fermeture Excel

Résolu
Barbebulle Messages postés 7 Statut Membre -  
al1_delon Messages postés 263 Statut Membre -
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 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 279
 
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 Statut Membre
 
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 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 279 > Barbebulle Messages postés 7 Statut Membre
 
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 263 Statut Membre 25
 
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Save
End Sub
0
Barbebulle Messages postés 7 Statut Membre
 
il faut que que j'inscrive ces trois lignes dans ma macros ?
0
al1_delon Messages postés 263 Statut Membre 25
 
Non la sub existe dans Vba dans la rubrique Vbaproject -Thisworkbook - Workbook (sous général).
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
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 263 Statut Membre 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