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.
Configuration: Windows Vista
Firefox 3.0.5
Excel 2007

5 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    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
      1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281 > 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
  2. al1_delon Messages postés 263 Statut Membre 25
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ThisWorkbook.Save
    End Sub
    0
    1. Barbebulle Messages postés 7 Statut Membre
       
      il faut que que j'inscrive ces trois lignes dans ma macros ?
      0
  3. 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
  4. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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