Clôturer une base de données

Amar -  
 Amar -
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. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490
     


    Bonjour.

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

    0
  2. Amar
     
    Parce que je veux que le classeur se verrouille automatiquement à la fermeture du classeur.
    0
  3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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. Amar
       
      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. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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
  4. Amar
     
    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