Configuration MsgBox + Verrouillage Feuille
Résolu
Villette54
Messages postés
300
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'ai une macro qui (normalement) se déclenche à l'ouverture de d'un classeur Excel et qui me demande le mot de passe de la feuille.
Si celui-ci est bon la feuille s'ouvre normalement, si celui-ci est faux la feuille reste protégée (donc read only).
De plus à la fermeture du classeur, la macro reverrouille (normalement) la feuille automatiquement.
Cependant cela ne se passe pas toujours comme prévu :
1. La feuille ne se reverouille pas automatiquement
2. La feuille ne s'ouvre pas en read-only lorsque le mdp est incorrecte (probablement lié au problème N°1, résoudre l'un résoudra l'autre je pense)
3. Et j'aimerais que lors de la saisie du mot de passe, les caractères ne s'affichent pas. Que l'ont vois seulement des ****, c'est tout de même plus pratique lors de projection !
4. Autre amélioration, j'aimerais si possible que le bouton "annuler" soit remplacé par un bouton "Pas de mdp" et que ceux-ci ne se situe plus à droite mais en dessous de la barre de saisie.
Ci-dessous mon code actuel :
Merci d'avance
J'ai une macro qui (normalement) se déclenche à l'ouverture de d'un classeur Excel et qui me demande le mot de passe de la feuille.
Si celui-ci est bon la feuille s'ouvre normalement, si celui-ci est faux la feuille reste protégée (donc read only).
De plus à la fermeture du classeur, la macro reverrouille (normalement) la feuille automatiquement.
Cependant cela ne se passe pas toujours comme prévu :
1. La feuille ne se reverouille pas automatiquement
2. La feuille ne s'ouvre pas en read-only lorsque le mdp est incorrecte (probablement lié au problème N°1, résoudre l'un résoudra l'autre je pense)
3. Et j'aimerais que lors de la saisie du mot de passe, les caractères ne s'affichent pas. Que l'ont vois seulement des ****, c'est tout de même plus pratique lors de projection !
4. Autre amélioration, j'aimerais si possible que le bouton "annuler" soit remplacé par un bouton "Pas de mdp" et que ceux-ci ne se situe plus à droite mais en dessous de la barre de saisie.
Ci-dessous mon code actuel :
Private Sub Workbook_Open() textetitre = InputBox(Title:="Bonjour", _ Prompt:="Veuillez saisir le code d'accès.") If textetitre = "1234" Then Worksheets(1).Unprotect Password:="natnat" 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 Private Sub Workbook_BeforeClose(Cancel As Boolean) Worksheets("Base RDP").Protect Password:="1234", DrawingObjects:=True, Contents:=True, Scenarios:=True Worksheets("Base RDP").EnableSelection = xlNoSelection End Sub
Merci d'avance
A voir également:
- Configuration MsgBox + Verrouillage Feuille
- Ethernet n'a pas de configuration ip valide - Guide
- Téléphone bloqué code verrouillage - Guide
- Panneau de configuration - Guide
- Verrouillage clavier - Guide
- Retablir configuration usine chromecast - Guide
1 réponse
Bonjour,
Plusieurs choses.
1- ton mot de passe "feuill" c'est natnat :
Or, à la fermeture du classeur, tu sauvegardes avec 1234 comme mot de passe :
D'où ton "merdouillage" au niveau de la protection...
Tu as mélangé le mot de passe d'ouverture et celui de protection...
2- si tu veux une boite de dialogue toute paramétrable (*** au lieu du mdp, bouton "pas de mdp" etc...) oriente toi vers les UserForm.
J'te bricole un exemple...
Plusieurs choses.
1- ton mot de passe "feuill" c'est natnat :
Worksheets(1).Unprotect Password:="natnat"
Or, à la fermeture du classeur, tu sauvegardes avec 1234 comme mot de passe :
Worksheets("Base RDP").Protect Password:="1234"
D'où ton "merdouillage" au niveau de la protection...
Tu as mélangé le mot de passe d'ouverture et celui de protection...
2- si tu veux une boite de dialogue toute paramétrable (*** au lieu du mdp, bouton "pas de mdp" etc...) oriente toi vers les UserForm.
J'te bricole un exemple...
Mais j'ai oublié de la changé à un endroit... Dans mon code il est bien identique.
Je jette un oeil à ton fichier, et te redis ce qu'il en est.
Merci.
Cependant il reste 2 problèmes :
1. Lorsque la personne clique sur "Pas de MdP" il ne faut pas que la base se ferme, il faut que la personne puisse la consulter mais pas la modifier (lecture seule)
2. Le second problème (et pas le moindre) c'est que je suis débutant en VBA et je n'ai pas la moindre idée de comment je peux transposer ton userform à mon fichier (pour être honnête je ne sais même pas comment créer un userform, ni ce que cela permet)
Merci d'avance.
Alors, un peu de lecture s'impose :
Les UserForms
Les contrôles de UserForm
Lorsque la personne clique sur "Pas de MdP" il ne faut pas que la base se ferme, il faut que la personne puisse la consulter mais pas la modifier (lecture seule)
Ne sachant pas ce que tu voulais, j'ai pensé fermer le fichier.
Mais bon si tu veux l'ouvrir, sans ôter la protection de ta feuille, il n'y a aucun souci :
à l'ouverture du classeur, tu protège ta feuille et lace l'userform :
Dans le code du bouton "Pas de MdP", tu fermes simplement l'userform (ta feuille étant protégée, pas de souci) :
Le code du bouton "Valider" est sensiblement équivalent à ton code initial :
La différence tient surtout dans le code d'ouverture de l'UserForm :
Ton aide va m'être très précieuse afin d'un peu mieux comprendre et utiliser VBA.
Merci également pour ton aide pour le code, il est parfait comme ça.
Je passe donc en résolu, bonne journée.