Clôturer une base de données

Bonjour,
j'ai une base de données excel notes d'examen.

Je voudrais maintenant une fois tout le travail(qui peut prendre plusieurs jours) est fait (c'est à dire saisie des notes, prénoms, nom, date naissance, etc...) que la session puisse être clôturée , aucune modification ne soit désormais plus possible sauf pour l'administrateur.

Et celà dès qu'on appuie sur un bouton VBA vous signalant un message du genre : est-ce que vous êtes sûr de clôturer votre session. Vous ne pourrez plus revenir en arrière.
Merci par avance de votre aide.

4 réponses

  1. Contributeur


    Bonjour.

    Pourquoi un bouton VBA ?
    Il suffit de protéger ou de chiffrer le classeur ...

    0
    1. Parce que je veux que le classeur se verrouille automatiquement à la fermeture du classeur.
      0
      1. Contributeur
        Bonjour,

        a mettre dans ThisWorkbook:

        Option Explicit
        Private Sub Workbook_BeforeClose(Cancel As Boolean)
        chiffrer
        End Sub
        Sub chiffrer()
        'adapter le mot de passe
        ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & ThisWorkbook.Name, FileFormat:=xlOpenXMLWorkbookMacroEnabled, _
        Password:="azerty", WriteResPassword:="azerty", ReadOnlyRecommended:=False, _
        CreateBackup:=False
        End Sub
        
        
        

        0
        1. Bonjour,
          Nous avons essayé ce code mais ça ne répond pas vraiment à notre préoccupation.
          Car pour ouvrir le classeur un mot de passe est demandé.
          Or nous voulons que le classeur s'ouvre sans mot de passe mais qu'il soit impossible de faire une quelconque modification.
          Merci quand même.
          0
        2. Contributeur
          en protégeant les feuilles:

          Option Explicit
          Private Sub Workbook_BeforeClose(Cancel As Boolean)
          proteger
          End Sub
          Sub proteger()
          'Déclare la variable objet Worksheet
          Dim Ws As Worksheet
          'Boucle sur toutes les feuille de calcul du classeur. Les onglets graphiques ne sont pas pris
          'en compte.
          'ThisWorkbook correspond à l'objet classeur contenant la macro
          For Each Ws In ThisWorkbook.Worksheets
              'protege toutes les feuilles
              Ws.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
          Next Ws
           End Sub
          
          


          il n'est pas demandé de mot de passe, il suffit de cliquer dans le ruban: Ôter la protection de la feuille pour y avoir accès!

          Sinon mettre un mot de passe

           Ws.Protect Password:="azerty", AllowFiltering:=True


          @+
          0
      2. Bonsoir,
        c'est à peu près cela.
        Mais avec ce bout de code:
        Ws.Protect Password:="azerty", AllowFiltering:=True

        , on peut effacer les données! donc modification.
        0