Mot de passe

Bonjour,

j'ai des difficultés à gérer mon mot de passe. Je voudrais qu'en l'absence du bon mot de passe choisi, le champ du label6 du userform4 n'apparaisse pas. Pour qu'il disparaisse lorsque je n'en ait plus l'utilité, j'ai mis un bouton administrateur sur la page menu pour le remettre à 0 (vide). Mais cela ne marche pas toujours. Je souhaiterai aussi (avec ou sans macro) que seul l’administrateur puisse avoir accès aux macro et aux feuille du classeur. Un autre utilisateur n'ayant accès qu'aux userform.

Merci de votre aide.

26dictionnairev3.zip (29.00 Ko)

Salut,

Je pense que j'ai trouvé 'un' problème potentiel (ou alors j'ai pas compris ) :

Sub gestionnaire()
]If MDP = Alain Then  '<------ PB ?
UserForm4.Label6.Caption = "cpt : " & cpt & Chr(13) & "sco : " & sco & Chr(13) & "traduire : " & traduire & Chr(13) & "réponse : " & reponse & Chr(13) & "nbr_mots : " & nbr_mots & Chr(13) & MDP
UserForm4.Label6.Visible = True
Else: UserForm4.Label6.Visible = False
UserForm1.CommandButton5.Visible = False
End If
End Sub

Ici tu teste ce qui est contenu dans la variable mdp et ce qui est contenu dans la variable Alain

Si je ne tape pas de mot de passe : mdp="" et comme Alain n'est pas déclaré (c'est donc un variant) que tu compare avec une chaine donc alain ="" , le mot de passe est validé. Et le lavel6 est affiché....

donc remplace par

If MDP = "Alain" Then

Astuce pour eviter ce genre de bug.... Au début de la macro écrit :

option explicit

cela t'obligera a déclarer et a typer tes variables... Tu aurais recu une erreur indiquant que la variable Alain n'etait pas déclaré....

Teste et dis moi si cela te convient et si tu as d'autres demandes.

Bigdams

Oui super,

je n'avais pas vu ni qu'il manquait les guillemets, ni que je n'avais pas mis option explicit.

A bientôt.

Salut,

As tu d'autres questions? Si non, peux tu clore la demande ?

Merci

Bigdams

Bonjour,

Je souhaiterai avec le même mot de passe gérer l'accès aux données de mon classeur. C'est à dire que sans mot de passe, il soit impossible d'avoir accès aux feuilles, ni à VBE et que les fenêtres, ni aux écrans de saisie. Donc uniquement aux formulaires.

Merci, Alain.

Salut,

Essaye avec sheets('mafeuille').visible = xlveryhydden

Cela devrais t aider pour la suite de ton programme.

Oui super merci et une dernière question sur la protection.

Est-il possible, à partir d'une macro, de vérouiller ou masquer la lecture d'une macro, c'est à dire que personne (sans mdp) puisse avoir accès aux macros du classeur ?


J'ai un petit soucis, si je mets mes xlveryhydden directement derrière le bouton dans mon userform, ça marche, si je le mets dans le module 1 où se trouve mes macros, j'ai xlveryhydden : variable non définie.

Sub fin_session()
MDP = ""
UserForm4.Label6.Visible = False
UserForm1.CommandButton5.Visible = False
Sheets("Dico").Visible = xlveryhydden
Sheets("listes").Visible = xlveryhydden
End Sub
Alain83 a écrit :

Oui super merci et une dernière question sur la protection.

Est-il possible, à partir d'une macro, de vérouiller ou masquer la lecture d'une macro, c'est à dire que personne (sans mdp) puisse avoir accès aux macros du classeur ?


J'ai un petit soucis, si je mets mes xlveryhydden directement derrière le bouton dans mon userform, ça marche, si je le mets dans le module 1 où se trouve mes macros, j'ai xlveryhydden : variable non définie.

Sub fin_session()
MDP = ""
UserForm4.Label6.Visible = False
UserForm1.CommandButton5.Visible = False
Sheets("Dico").Visible = xlveryhydden
Sheets("listes").Visible = xlveryhydden
End Sub

en fait je suis désolé pour l orthographe il s agit de xlveryhidden opus dslé

J avais fait un truc du genre

Private Sub Workbook_Open()
Sheets("feuil3").Visible = True
'action.....
Sheets("feuil3").Visible = xlVeryHidden
End Sub

Bonsoir.

excuses moi, je ne comprends, même avec des majuscules à Very et à Hidden (précédées ou pas de Sheets("Dico").Visible = True, ça ne marche pas. Où se situe la nuance que je ne comprends pas ?


Sheets("Dico").Visible = False seul marche pour rendre inaccessible la feuille, mais pour vérouiller ou masquer la lecture d'une macro, non.

Bonsoir

En mettant seulement

Sheets("Dico").Visible = False

On peut rendre visible la page par le menu Format ---> Feuille ----> Afficher

C'est pour ça qu'il faut les mettre en

Sheets("Dico").Visible = xlSheetVeryHidden 

Extrait de l'aide

xlSheetVeryHidden Masque l'objet de telle sorte que le seul moyen de le rendre de nouveau visible est d'affecter la valeur True à cette propriété (l'utilisateur ne peut pas rendre l'objet visible).

Pour protéger le code dans l'éditeur

Menu : Outils ---> Propriétés de VBAProject ....

Onglet Protection tu as la possibilité d'inscrire un mot de passe

Je pense (pas sur) qu'il faut sauvegarder à partir de l'éditeur VBA

Merci.

Ca marche comme je veux maintenant. Je pense avoir compris le xlSheetVeryHidden et j'ai verrouillé les macros avec un mot de passe. Il ne manque plus qu'a rendre "in-déplaçable" les formulaires affichés et cette partie est réglée.

Rechercher des sujets similaires à "mot passe"