[excel/vba] protection d'une feuille

Résolu
antic80 Messages postés 4877 Statut Contributeur -  
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

j'ai fait un petit programme afin de gérer des données.

Etant donné que ce programme va etre consulté par plusieurs personnes j'aimerais protéger la feuille contenant les données par un mot de passe.

Ce mot de passe ne seras transmis qu'a quelques personnes afin qu'elles puissent saisir de nouvelles données.

J'aimerais donc faire une macro qui demanderais le mot de passe et quand on quitte excel il faudrait que la protection se remette automatiquement.

merci pour vos suggestions et vos réponses
Configuration: Windows 2000
Internet Explorer 6.0

4 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Salut,

    Crée un module macro clic droit sur l'onglet de ta feuille/visualiser le code/ insertion/module dans ce module colles ce code

    Dans cet exemple le mot de passe est titi et doit être changé suivant tes besoins dans la ligne
    If textetitre = "titi" Then

    Sub Déprotection()
    textetitre = InputBox(Title:="Bonjour", _
    Prompt:="Veuillez Saisir le code d'accès.")
    If textetitre = "titi" Then
    Worksheets(1).Unprotect Password:="titi"
    Else
    msg = "Mot de passe incorrect."
    StyleBoîteDialogue = vbOKOnly + vbQuestion
    Title = "Accès réglementé."
    réponse = MsgBox(msg, StyleBoîteDialogue, Title)
    Exit Sub
    End If
    End Sub

    Sur ta feuille de calcul crée un bouton associé à cette macro pour déprotéger ta feuille.

    Ensuite pour que ta feuille se protège automatiquement à la fermeture de ton fichier
    Clic droit sur l’onglet de feuille, double clic sur thisworkbook une feuille blanche s’ouvre, colle le code ci-dessous. Attention si tu change le mot de passe « titi à la déprotection, il faut également le changer à la protection, et n’oublis pas de mettre to mot de passe entre :""

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Worksheets(1).Protect Password:="titi"
    End Sub

    Et pour terminer afin que personne que toi n'accède au module macro et donc découvrir ou changer le mot de passe il convient de protéger le module VBA par un mot de passe. Mais attention de ne pas multiplier les mots des passes afin de ne pas les oublier, bien qu’il existe des logiciels de déprotection.

    A+
    3
    1. antic80 Messages postés 4877 Statut Contributeur 1 178
       
      merci infiniment pour cette réponse Mike-31

      clair et précis, parfait pour moi
      0
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    N'oublis pas de mettre ton statut en résolu

    Merci

    A+
    0
  3. Eddah
     
    salut
    j'ai suivi tout ce que t'a dit mais en fin quand j'ouvre le fichier je trouve que la feuille n'est pas proteger, on peut faire des modification dans cette feuille, malgré que la macro s'execute normal apartir de sont bouton.

    merci pour tout
    0
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Salut,

    Tu aurais du ouvrir ta propre discussion et expliquer ton problème.
    Cette discussion à été ouverte par Antic80 et son statut est résolu.

    Enfin, le code que j'ai donné dans ce topic consistait à contrôler les personnes autorisées à apporter des modifications sur une feuille d'un classeur. pour cela il faut coller ce code dans un module

    Sub Déprotection()
    textetitre = InputBox(Title:="Bonjour", _
    Prompt:="Veuillez Saisir le code d'accès.")
    If textetitre = "titi" Then
    Worksheets(1).Unprotect Password:="titi"
    Else
    msg = "Mot de passe incorrect."
    StyleBoîteDialogue = vbOKOnly + vbQuestion
    Title = "Accès réglementé."
    réponse = MsgBox(msg, StyleBoîteDialogue, Title)
    Exit Sub
    End If
    End Sub

    et celui ci dans la Thisworkbook

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Worksheets(1).Protect Password:="titi"
    End Sub

    le mot de passe pour accéder aux modifications de la feuille est titi.
    Pour appliquer ce code à plusieurs feuilles ou une feuille différente que la feuille 1 il faut revoir le code
    0