Forums | Contact | Plan du site Menu Accueil » Excel et Visual Basic
 
Présentation
Utilité d'Excel
Présentation des menus
 
Manipulation des macros
Qu'est-ce qu'une macro ?
Création de macros
Se déplacer dans les tableaux
Macros et barres d'outils
 
Personnalisez vos classeurs
Créer votre splash screen
Fermer

Texte caché pour les mots de passe dans Visual Basic

  Il est parfois utile de vérifier si un utilisateur du fichier connaît un mot de passe (voir par exemple comment protéger plusieurs feuilles Excel en même temps avec Visual Basic). On peut très bien pour celà utiliser la fonction InputBox, qui affiche une boîte de dialogue permettant à un utilisateur de saisir le mot de passe. Mais cette fonction ne permet pas de cacher le texte saisi par l'utilisateur (en le remplaçant par exemple par des astérisques).

La fonction InputBox ne permet pas de cacher le mot de passe saisi par l'utilisateur.

Nous allons donc voir ici comment demander un mot de passe en remplaçant le texte entré par des caractères, pour le cacher des éventuels regards indiscrets...

Pour remplacer un texte par un caractère spécial, il faut définir la propriété PasswordChar. On vérifie dans l'aide de ce paramètre, et on clique sur « s'applique à »... on voit que ce paramètre n'est associé qu'à un composant TextBox. Inutile donc de chercher plus loin avec la fonction InputBox, ça ne sera pas possible. Or le composant TextBox est un simple champ de saisie, contrairement à InputBox qui affiche une boite de dialogue (avec des boutons OK et Annuler).

Pour utiliser ce composant TextBox, il va donc falloir créer une boite de dialogue en utilisant :

  • une UserForm (forme sur laquelle on va placer les composants suivants),
  • un composant TextBox (pour saisir le mot de passe) en modifiant sa propriété PasswordChar,
  • deux boutons pour Valider et Annuler la saisie.


Créer la boîte de dialogue dans Visual Basic

 

Commencez par créer la UserForm : menu Insertion / UserForm

Une fois la UserForm créée, cette boîte à outils s'affiche et vous permet de sélectionner des composants à ajouter à la fiche. Boutons, zones de texte, listes, cases à cocher... une palette de composants très utiles pour créer vos propres formulaires. Nous aurons besoin ici de deux boutons ( Composant Bouton pour les UserForm ) et d'une Zone de Texte ( Zone de texte (champ de saisie utilisateur) pour les UserForm ).

Présentation de la boîte à outils des composants pour les UserForm

Placez d'abord ces trois composants sur la fiche, puis éditez les propriétés de chacun (clic droit / propriétés) pour définir les paramètres Caption des deux boutons (caption est le texte des boutons, donc Valider et Annuler) et le paramètre PasswordChar du TextBox à « * » (ou tout autre caractère qui devra remplacer le texte saisi). Vous pouvez éventuellement modifier la propriété Caption de la fiche et la redimentionner comme l'exemple ci-dessous.

Présentation de la boîte de dialogue terminée


Créer le code qui va gérer les actions de l'utilisateur

 

Pour afficher la boite de dialogue vous devez associer ce code à un bouton dans Excel :

Sub Macro1()
  UserForm1.Show
End Sub

Lorsque l'utilisateur clique sur le bouton Annuler, la boîte de dialogue doit être fermée. Il faut également penser à supprimer le texte que l'utilisateur aurait pu commencer à entrer. Faites un double clic sur ce bouton pour accéder au code directement.

Private Sub CommandButton1_Click()
  TextBox1 = ""
  UserForm1.hide
End Sub

Lorsque l'utilisateur clique sur le bouton Valider, il faut vérifier que ce soit le bon mot de passe et effectuer la tâche le cas echéant. Ensuite, il faut bien sûr effacer le texte saisi (surtout s'il s'agit du bon mot de passe!) et fermer la boîte de dialogue. Faites un double clic sur ce bouton pour accéder au code directement.

Private Sub CommandButton2_Click()
  If TextBox1.Text = "mot-de-passe" Then
   'Entrer ici le code à exécuter
  Else MsgBox("Le mot de passe est invalide.")
  End If
  TextBox1 = ""
  UserForm1.Hide
End Sub

© Cédric MICHEL - conseil & création ( 2003 / 2024 )