Rechercher : dans
Par :

Problème d'enregistrement de fermeture Excel

Dernière réponse le 29 déc 2008 à 22:13:29 Barbebulle, le 29 déc 2008 à 13:40:32 
 Signaler ce message aux modérateurs

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.

Configuration: Windows Vista
Firefox 3.0.5
Excel 2007

1

al1_delon, le 29 déc 2008 à 16:53:35

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Save
End Sub

Répondre à al1_delon

2

Barbebulle, le 29 déc 2008 à 17:02:56

Il faut que que j'inscrive ces trois lignes dans ma macros ?

Répondre à Barbebulle

3

al1_delon, le 29 déc 2008 à 17:06:44

Non la sub existe dans Vba dans la rubrique Vbaproject -Thisworkbook - Workbook (sous général).

Répondre à al1_delon

4

gbinforme, le 29 déc 2008 à 19:04:56

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
Toujours zen

Répondre à gbinforme

5

eriiic, le 29 déc 2008 à 19:32:33
  • +1

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

Répondre à eriiic

6

Barbebulle, le 29 déc 2008 à 21:30:11

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....

Répondre à Barbebulle

7

eriiic, le 29 déc 2008 à 22:05:10

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

Répondre à eriiic

8

 al1_delon, le 29 déc 2008 à 22:13:29

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.

Répondre à al1_delon
Collection CommentÇaMarche.net