Conditionner affichage onglet / mot de passe

pticoni -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je souhaite conditionner l'affichage d'un onglet par un mot de passe.
L'objectif est de réunir dans un seul fichier des onglets saisis par différents utilisateurs. Chaque utilisateur est maître de son onglet mais ne doit pas pouvoir consulter les autres onglets pour des raisons de confidentialité.

Exemple : l'utilisateur ouvre le fichier excel et souhaite afficher "son" onglet pour le mettre à jour. Il rentre alors son mot de passe en utilisant par exemple la fonctionnalité de protection d'un onglet (ou autre solution permettant de saisir un mot de passe). La validation du mot de passe entraîne l'affichage d'un onglet précis que l'on doit pouvoir relier au mot de passe.

Pour info, j'ai commencé à bidouiller ce bout de code (récupéré sur ce forum) pour arriver à mes fins, en vain :

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

Merci d'avance de votre aide et de vos conseils !

Pticoni
Configuration: HP Compaq 6910p
Windows XP office 2003
Internet Explorer 6.0

1 réponse

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Salut,
    Je pense qu'il faut dans un premier temps masquer toutes tes feuilles puis faire quelque chose dans ce genre là :
    Cette procédure fonctionne si le mot de passe est le nom de l'onglet.

    Dim mdp As String
    Dim Ws As Integer
    mdp = InputBox("Veuillez saisir votre mot de passe", "Bonjour")
    For Ws = 2 To Sheets.Count
    If Sheets(Ws).Name = mdp Then
    Sheets(mdp).Visible = True
    Sheets(mdp).Activate
    ActiveSheet.Unprotect
    Exit Sub
    End If
    Next
    MsgBox ("Mauvais mot de passe")
    0