Protection de fichier Excel par VBA

Dans mon travail, je suis amené à enseigner une base de donnée sur excel. cette base est souvent corrompu par des utilisateurs indélicats : Je souhaiterai creer 3 types acces à cette base
pour les personne ne connaissant pas de mots de passe : la possibilité de consulter et de copier les données mais pas la possibité d'enregistrer
pour les personnes connaissant un mot passe qui leur permettent de consulter et de copier les données et le renseigner sur le feuille "base de donnée" les colonnes E, G, M,N. et enregistrer
Pour les personnes utilisant un autre mot et passe : aucun limitation action
Je pense que cela est possible grace VBA mais je n'ai malheureusemen tpas de connaissance dans ce dommaine
Merci d'avance de votre aide cela va me simplifier la vie

3 réponses

  1. Bonjour

    Tu peux enregistré ton fichier Excel en lecture seul

    voici comment procéder

    Fait "Fichier" puis "Enregister sous" puis "Outils" puis "Options générales"

    Coche "Lecture seule recommandée"

    mais ton "mot de passe protégeant ton document" puis ok

    lorsque tu va lancer le document , si le mot de passe n'est pas renseigné alors ton fichier sera en lecture seule

    Utilsfr
    http://utilsfr.new.fr
    Applications, Utilitaires, Macros, Fonctions, Formulaires, Graphiques Excel
    2
    1. Je me suis trompé

      ne coche pas lecture seule

      mais juste un mot de passe pour l'accés a l'écriture
      0
  2. Contributeur
    bonjour

    je le mets en application cette semaine

    Tu vas perdre ton temps car une protection ainsi conçue doit résister quelques minutes à ceux qui vont être frustrés par tes protections.

    Il suffit d'avoir une sauvegarde de la base et faire une initialisation en cas de dégradation par des utilisateurs indélicats.
    1
    1. Merci de ton conseil
      j'ai déja utilisé cette solution. Mais cela n'est pas suffissant car les données non protégé en écriture peuvent l'être modifie par tous
      0
      1. voici 2 macros

        Private Sub Worksheet_Change(ByVal Target As Range) 'macro événementiel
        interdiresaisie Target, Range("a1:a10,c1:c20,g1")'Plage autorisée a adapter
        End Sub

        Sub interdiresaisie(lacellule As Range, plageautorisée As Range)
        If Intersect(lacellule, plageautorisée) Is Nothing Then
        MsgBox "Non autorisé a modifier"
        Application.EnableEvents = False
        Application.Undo
        Application.EnableEvents = True
        End If
        End Sub

        Protege ensuite ton project VBA
        ALT+F11
        puis Outils puis PropriétéS de VBAPROJECT PUIS ONGLET PROTECTION

        COCHE "verrouiller le project pour affichage

        saisi les mots de passe puis ok

        relance le fichier
        0