|
Préambule
Proposer du texte par défaut
Récupérer
le nom de l'utilisateur
Récupérer
la date système et la formater
Créer une liste déroulante
Définir l'ordre de
remplissage de la boîte de dialogue
Télécharger
fichier exemple
|
Suggérer des réponses à
l'utilisateur
Créer une liste déroulante
Nous allons à présent créer une liste déroulante
que nous allons placer sur notre Userform juste avant le nom de
notre contact et qui contiendra les formules de civilité.
Le VBA dispose de deux contrôles de listes :
|
zone de liste modifiable
|
permet à l'utilisateur de saisir un texte non prévu
dans la liste
|
|
zone
de liste
|
limite le choix de l'utilisateur au contenu de la liste
|
Le choix de l'un ou l'autre de ces contrôles dépend
donc de la liberté que vous souhaite accorder à
l'utilisateur.
Le code lié à ces deux contrôles est identique
et nous allons, dans notre excercice, utiliser la zone de liste
modifiable.
Pour ce faire :
-
Activez la UserForm en cliquant sur l'icône 
-
Cliquez sur l'icône zone de liste
modifiable
et dessinez sur votre Userform un contrôle que vous
nommerez "salutation"
(je vous rappelle que pour nommer un contrôle, il convient
d'utiliser la propriété "Name").
-
Réduisez et déplacez si nécessaire la
zone de texte "contact".
Notre zone de liste est créée... mais il reste
à la remplir. Là encore, nous allons utiliser la
procédure UserForm_Initialize().
Pour remplir une liste, rien de plus simple : il suffit d'indiquer
son nom et y accoler la méthode .addItem
et le texte à ajouter entre guillemet.
Notre code devient donc :
Private Sub UserForm_Initialize()
datel=format(Date,"dd/mm/yy")
signataire=application.username
salutation.AddItem "Monsieur"
salutation.AddItem "Madame"
salutation.AddItem "Mademoiselle"
salutation.AddItem "Messieurs"
ville = "Paris"
End Sub
Cliquez sur
puis sur la touche F5 ou l'icône
pour tester votre macro. Que constatez-vous ? Votre zone de liste
apparaît bien à l'écran mais sans contenu
par défaut. Pour visualiser ce contenu, il faut dérouler
la liste.
Cliquez sur le bouton "Annuler" pour refermer la boîte
de dialogue.
Nous allons à présent remédier à
ce petit défaut grâce à l'instruction .ListIndex
+ n° d'ordre.
En informatique, on commence à numéroter les listes
à partir de 0 (eh, oui, aussi étrange que cela
paraisse, c'est comme ça !). "Monsieur" correspond
donc au numéro (on parle d'index)
"0", Madame à l'index 1 et ainsi de suite. Pour
que la liste déroulante affiche par défaut "Monsieur",
il faut donc modifier notre code comme suit :
Private Sub UserForm_Initialize()
datel=format(Date,"dd/mm/yy")
signataire=application.username
salutation.AddItem "Monsieur"
salutation.AddItem "Madame"
salutation.AddItem "Mademoiselle"
salutation.AddItem "Messieurs"
salutation.ListIndex =0
ville = "Paris"
End Sub
Haut
|
Niveau
Pré-requis :
UserForm_Initialize()
:
placez dans cette procédure
tout le code
relatif au pré-remplissage
de votre UserForm
Application.UserName
:
permet de récupérer la valeur de la zone "Nom"
du menu "Outils", "Options", onglet "Utilisateur"
Date
:
permet de récupérer la date du jour (date système)
Format(date,"d/mm/yy")
permet de formater la date système
d = jour
m = mois
y = année
nom_de_liste.AddItem
"texte"
permet d'ajouter un élément à une liste
nom_de_liste.ListIndex X
où X est un nombre
Permet d'afficher par défaut un élément de
la zone de liste

Voir l'animation - 351 ko
|