Exel Utiliser Les Controles
Exel Utiliser Les Controles
ActiveX
1
Dans ce tutoriel, on va voir comment créer une interface graphique simple mais
pratique pour collecter des informations auprès des utilisateurs et alimenter une base de
données.
[Link]
Où trouver les contrôles
Pour utiliser les contrôles, on doit afficher l'onglet Développeur dans le ruban. Si cet
onglet est absent dans votre ruban, affichez-le en allant dans les options de Excel puis
Personnaliser le ruban où vous devez activer la case à cocher Développeur puis valider.
2
[Link]
Différences entre Contrôles ActiveX et
Contrôles de Formulaire
En apparence, les deux types de contrôles se ressemblent tout à fait, mais
3 fonctionnellement, chacun des deux types a des avantages et des inconvénients qui font que
l'on doit utiliser les contrôles de l'une ou de l'autre catégorie selon la situation. Le tableau
qui suit montre les caractéristiques de chacun des deux types de contrôles.
[Link]
L'utilisation des différents contrôles dépend donc des besoins de l'application, mais
aussi de l'environnement et de la version de Excel des utilisateurs qui utiliseront le
formulaire.
Quelles sont les informations que nous cherchons auprès des utilisateurs ?
Quelle version de Excel utilisent-ils ?
Sous quel environnement travaillent-ils ? (Windows ou autres)
On suppose que les utilisateurs auxquels le formulaire est destiné sont tous sous
Windows et travaillent sur des versions assez récentes de Excel.
[Link]
Cette application va être l'occasion de réviser plein de choses vues dans les chapitres
précédents
Préparer le classeur
5
Avant de commencer à créer le formulaire, on va d'abord s'occuper de l'infrastructure
nécessaire. Le classeur sera constitué de trois feuilles :
La feuille Paramètres
[Link]
La feuille BDD
La feuille BDD quant à elle, elle contient un seul Tableau qui forme la base de données
où seront stockées les informations renseignées par l'utilisateur dans le formulaire après
validation de la saisie.
6
Ce tableau est formé de plusieurs colonnes dont les en-têtes sont : Nom, Prénom,
Sexe, Email, Niveau, MsWord, MsExcel, MsPPT, MsAccess, DureeProposee et
TypeFormation.
Pour l'instant, la base de données ne contient que les en-têtes et la première ligne qui
est vide. La base se remplira au fur et à mesure des saisies des utilisateurs via la feuille
Formulaire.
La feuille Formulaire
[Link]
Travail à faire 1
3. Comme nous avons l'intention d'utiliser des macros dans le classeur, vous devez
dès à présent, l'enregistrer au format .xlsm qui prend en charge les macros.
Les zones de textes (les TextBox), sont des champs réservés à la saisie de texte, qui invitent
l'utilisateur à introduire une information. Sous les versions récentes de Excel, le bouton zone
de texte dans la catégorie Contrôles de formulaire est grisé (non fonctionnel) ce qui fait
qu'on va utiliser celui de la catégorie Contrôles ActiveX. Tant mieux, celui-ci va nous
permettre plus de paramétrage et de personnalisation.
Comme c'est déjà signalé, pour insérer une zone de texte, il n'y a pas plus facile, il
suffit de la sélectionner dans la catégorie Contrôles ActiveX et la dessiner sur la feuille Excel
par un cliquer-glisser.
[Link]
8
La fenêtre des propriétés affiche la liste des propriétés de l'objet sélectionné en deux colonnes
: celle de gauche indique le nom de la propriété et celle de droite affiche la valeur de la
propriété. On peut avoir l'affichage classé par ordre alphabétique ou bien par catégorie. La
capture suivante montre les propriétés du contrôle TextBox (zone de texte) sélectionné sur la
feuille.
[Link]
9
[Link]
10
Travail à faire 2
Créez deux autres TextBox avec les mêmes propriétés que le premier, un pour
la saisie du Prénom que vous nommez txtPrenom et le deuxième pour la saisie de
l'adresse e-mail avec le nom txtEmail.
Après avoir créé les TextBox, sélectionnez-les puis utilisez les outils d'alignement qui se
trouvent sous l'onglet Format, pour les aligner.
[Link]
11
Astuce
On peut utiliser des Copier-Coller pour créer plusieurs copies d'un même objet.
Les étiquettes
Les trois zones de texte (TextBox) pour saisir le Nom, le Prénom et l'e-mail, sont bien
insérées sur la feuille ; sauf que ça risque de désorienter l'utilisateur, puisqu'il n'y a aucune
indication pour l'aider à remplir les différents champs. Il faudrait utiliser des étiquettes (des
Labels) pour désigner les champs et ainsi faciliter la tâche aux utilisateurs.
Les Étiquettes, on les trouve dans les deux catégories comme c'est indiqué par des
flèches dans la capture précédente. Celles de la catégorie Contrôles de formulaire, sont très
pauvres en terme de propriétés. Hormis les dimensions et le texte, on ne peut rien modifier
[Link]
dans ces contrôles, ce qui limite beaucoup la mise en forme du texte de l'étiquette. De ce
fait, on va utiliser les étiquettes de la catégorie ActiveX qui possèdent toute une panoplie de
propriétés donnant ainsi de grandes possibilités de personnalisation de leur apparence.
[Link]
Travail à faire 3
Un bouton radio, aussi appelé une Case d'option, est un contrôle qui permet à
l'utilisateur de choisir, par un simple clic, une seule option parmi plusieurs. Les boutons radio
sont toujours utilisés par groupe d'au moins deux boutons et le fait d'en activer un, désactive
automatiquement les autres boutons du même groupe.
[Link]
14
Pour les boutons radio de la catégorie ActiveX, on modifie le texte de leurs étiquettes
en passant par la propriété Caption comme c'est montré ci-dessous.
Bien que les cases d'options ActiveX soient plus riches en propriétés et offrent plus de
possibilités de personnalisation et vu qu'on n'a pas besoin de toutes ces mises en forme, on
va opter pour les boutons de la catégorie Contrôles de formulaire plus faciles à utiliser.
[Link]
Les zones de groupe
Il arrive que nous ayons besoin, dans la conception d'un formulaire, de plusieurs
ensembles de boutons d'option comme par exemple choisir le sexe et le niveau. Pour cela
nous insérons quatre boutons : deux pour choisir le genre et deux pour définir le niveau.
15
Le problème qui se pose ici, c'est qu'avec une telle disposition, Excel ne permet pas de
choisir séparément le genre et le niveau vu que les quatre boutons, lors de leur insertion,
font partie d'un seul et même groupe. Il faudrait donc les répartir en deux groupes distincts.
Pour mettre ensemble des boutons d'options, on doit dessiner une zone de groupe de
telle façon qu'elle englobe entièrement tous les boutons à grouper. Pour le titre du groupe,
on peut saisir un texte sinon on l'efface et on utilise une étiquette à la place. De cette
manière les différents groupes de boutons deviennent indépendants les uns des autres
comme le montre l'animation ci-après.
[Link]
16
Le contrôle Zone de groupe n'est pas disponible dans la catégorie ActiveX parce que le
groupement dans cette catégorie se fait autrement.
[Link]
Travail à faire 4
Créez les boutons radio pour définir le sexe du candidat(e). N'oubliez pas de les
grouper à l'aide d'un contrôle Zone de groupe.
17
Les cases à cocher permettent de donner plusieurs réponses à une même question,
par exemple :
Je peux bien être intéressé par un ou plusieurs logiciels. Les cases à cocher sont le
moyen adéquat pour collecter des réponses à ce type de questions.
Selon le besoin de l'application, on peut utiliser les cases à cocher de type Contrôles de
formulaire ou bien celles du type Contrôles ActiveX. Lors de l'insertion d'une case à cocher,
celle-ci est munie de sa propre étiquette avec un texte par défaut que l'on peut éditer de
deux manières différentes selon le type du contrôle.
Pour les contrôles de formulaire, un clic droit puis cliquer sur la ligne Modifier
le texte après quoi on efface l'ancien texte et on saisit un autre.
[Link]
Pour les contrôles ActiveX, on affiche les propriétés de la case puis on modifie
la valeur de la propriété Caption.
L'animation suivante montre comment insérer une case à cocher et comment modifier
le texte de l'étiquette pour chaque catégorie.
18
Travail à faire 5
[Link]
Les listes
Comme leur nom l'indique, ces contrôles permettent de faire des choix parmi les
éléments d'une liste. Les contrôles listes se déclinent en deux catégories : les zones de listes
déroulantes pour effectuer un choix unique et les zones de listes qui permettent des choix
19 multiples.
Les zones de listes déroulantes ou encore zones de listes modifiables sont disponibles
comme contrôles de formulaire et comme contrôles ActiveX. Ce dernier type donnant plus
de possibilités de paramétrage.
Une zone de liste déroulante est formée d'une zone de texte munie d'une liste
déroulante. En cliquant sur le bouton flèche situé sur la droite de la zone de texte, la liste se
déploie permettant ainsi de sélectionner un élément. Une fois le choix effectué, l'élément
sélectionné est transcrit dans la zone de texte et aussitôt la liste se referme.
[Link]
20
Après avoir inséré une zone de liste déroulante de type Contrôle de formulaire sur la
feuille Excel, son paramétrage est assez facile via la fenêtre Format du contrôle où il faut
renseigner la valeur de deux ou trois paramètres. Cette fenêtre est accessible en cliquant
droit sur le contrôle puis dans le menu qui apparait sélectionner la ligne Format de contrôle
La même fenêtre est aussi accessible en cliquant, après avoir sélectionné le contrôle
ajouté sur la feuille, sur le bouton Propriétés dans le groupe Contrôles sous l'onglet
Développeur.
[Link]
21
Sous l'onglet Contrôle de cette fenêtre, on définit notamment les deux champs :
[Link]
Cellule liée : où il faut mettre l'adresse de la cellule qui recevra la valeur
retournée par le contrôle ; cette valeur est l'indice de l'élément sélectionné
dans la liste, c'est à dire son numéro d'ordre dans la liste.
Le paramètre Nombre de lignes définit le nombre de lignes qui seront visibles sur la
22 liste une fois déployée. Si le nombre de ligne est supérieur à ce nombre, une barre de
défilement apparait pour avoir accès aux autres items de la liste.
[Link]
23
Remarquez qu'une fois paramétrée, la liste déroulante affiche les éléments de la plage
d'entrée et renvoie l'indice (le numéro) de l'item sélectionné, cet indice est récupéré par la
cellule liée (Dans le cas présent la cellule K8).
LinkedCell définit la cellule liée au contrôle. C'est cette cellule qui reçoit la
valeur retournée par le contrôle.
ListFillRange définit la plage d'entrée qui alimente la liste déroulante
ListRows c'est le nombre de lignes affichées dans la liste sans avoir besoin à
utiliser la barre de défilement
[Link]
24
Les valeurs des propriétés sont saisies à la main. Dans le cas présent, la référence de la
cellule liée, $K$8 pour la propriété LinkedCell, l'emplacement de la plage de cellules qui
alimentent la liste Parametres!$C$2:$C$5 pour la propriété ListFillRange et une valeur
numérique entière ici la valeur 8 pour la propriété ListRows.
[Link]
liste, ce qui est un grand avantage. En plus de ça, le contrôle ActiveX est doté de plusieurs
propriétés permettant, entre-autre, de :
La capture ci-après montre une zone de liste déroulante ActiveX pour laquelle nous
avons modifié l'apparence et affiché l'en-tête des colonnes. Tous ces paramétrages ne sont
pas permis pour une zone de texte déroulante de la catégorie Contrôle de formulaire.
[Link]
26
Les ListBox (Zones de liste) existent dans les deux versions Contrôle de formulaire et
Contrôle ActiveX
Ces deux moutures de la zone de liste se paramètrent de la même manière que leurs
homologues respectifs dans la catégorie Zone de liste déroulante (ComboBox), en particulier
la plage d'entrée et la cellule cible. Le paramétrage doit aussi définir le type de sélection qui
peut prendre l'une des valeurs suivantes :
[Link]
puis maintenir la touche Shift (Maj) enfoncée et cliquer sur le dernier élément
à sélectionner.
Le même paramétrage a été assigné à la ListBox (ActiveX) ci-dessous via la fenêtre des
propriétés où les valeurs suivantes : $C$16, $C$2:$C$5 et fmMultiSelectSingle ont été
données respectivement aux propriétés : LinkedCell, ListFillRange et MultiSelect.
[Link]
28
Les trois valeurs possibles pour la propriété MultiSelect d'une ListBox ActiveX sont :
[Link]
Travail à faire 6
Faites de même pour permettre aux candidats de choisir le type de formation préféré
(Présentielle, Distancielle ou bien À Domicile), la plage d'entrée de cette liste sera le tableau
typeFormation qui se trouve sur la feuille Parametres.
Les Barres de défilement sont connues pour leur utilisation pour faire défiler une plage
de données trop large ou bien trop longue pour être entièrement visible dans une zone
d'affichage. Une Barre de défilement sert aussi à incrémenter ou décrémenter la valeur
d'une cellule, depuis une valeur minimale jusqu'à une valeur maximale avec un pas défini.
[Link]
Comme la quasi-totalité des contrôles, les barres de défilement existent dans les deux
catégories : Contrôle de formulaire et Contrôle ActiveX ; celles du groupe ActiveX présentant
plus de propriétés de paramétrage.
[Link]
Value pour la valeur active
31
Notez que bien d'autres propriétés figurent dans la liste, entre autre BackColor pour la
couleur du remplissage, ForeColor pour modifier la couleur du texte.
Les toupies
[Link]
32
L'orientation de la toupie dépend de ses dimensions, dessinez-la plus haute que large
pour que les flèches soient dirigées verticalement ou bien plus large que haute pour que les
flèches prennent une orientation horizontale.
[Link]
33
[Link]
34
Notez que pour une Toupie ActiveX on peut aussi modifier d'autres propriétés,
notamment son orientation en donnant à sa propriété Orientation la valeur
fmOrientationVertical, la valeur fmOrientationHorizontal ou bien la valeur
fmOrientationAuto. Cette dernière valeur permet à la toupie de s'orienter
automatiquement selon ses dimensions comme c'est vu chez la toupie contrôle de
formulaire.
Selon la conception et le design de votre application, vous pouvez utiliser une Barre de
défilement ou bien une Toupie pour faire varier la valeur d'une cellule.
[Link]
Travail à faire 7
35
[Link]
36
Dans le cas d'un bouton contrôle de formulaire une fenêtre apparait et propose
d'affecter une macro au bouton, pour l'instant on va annuler cette affectation de macro et
s'occuper du paramétrage du bouton. Tout ce qu'on peut modifier pour un bouton de
commande contrôle de formulaire est sa taille et la mise en forme de son texte en passant
par les onglets Police, Alignement et Dimensions.
[Link]
37
Notez qu'on peut insérer une forme (rectangle, cercle, flèche ou autre) sur la feuille
Excel et l'utiliser en guise de bouton en lui affectant une macro. Dans la capture suivante des
rectangles à coins arrondis ont été utilisés pour servir de boutons cliquables.
[Link]
cellules liées à ces contrôles. Pour cette raison, et dans le but d'y voir plus clair, on va créer
un tableau intermédiaire dans lequel on va mettre les valeurs récupérées avec leurs
significations explicites. Ainsi ce tableau qui sera placé quelque part dans la feuille Excel, doit
contenir trois (3) colonnes :
38 Désignation : dans laquelle on va mettre les titres des champs (le texte des
étiquettes)
Cellules liées : cette colonne est formée de cellules liées aux différents
contrôles
Valeurs explicites : c'est la valeur explicite qui correspond à la valeur retournée
par chaque contrôle. Ces informations seront obtenues à l'aide de fonctions
Excel pas très compliquées et ce sont elles qui seront transférées vers la base
de données.
Commençons par les informations saisies dans les contrôles zones de texte concernant
le Nom, le Prénom et l'E-mail que nous mettrons respectivement dans les cellules O4, O5 et
[Link]
O6. Ces contrôles ne retournent pas de valeurs, ce qui nous oblige à utiliser du code VBA
pour récupérer leurs contenus. Souvenez-vous, lorsqu'on a inséré ces contrôles dans la
feuille, on a modifié les valeurs de certaines de leurs propriétés y compris la propriété Name
à laquelle nous avons donné la valeur txtNom pour définir le nom de la zone texte Nom,
txtPrenom pour définir le nom de la zone de texte Prénom et la valeur txtEmail pour définir
39 le nom de la zone de texte E-mail. Ces noms sont indispensables pour identifier les contrôles
dans le code VBA.
Nous cherchons à obtenir l'effet suivant : Au fur et à mesure que l'utilisateur tape son
nom dans la zone de texte intitulée txtNom, ce nom se répercute dans la cellule O4. Ceci se
traduit en VBA par l'expression suivante :
Range("O4").Value = [Link]
[Link]
Puisque ce morceau de code est lié à l'événement Change du contrôle, cette syntaxe
veut dire tout simplement que la valeur de la cellule O4 soit égale à la valeur (au contenu) de
la zone de texte txtNom à chaque fois qu'on modifie le contenu de cette dernière.
L'animation suivante en montre une démonstration.
40
Maintenant que le contenu de la zone de texte txtNom est extrait dans la cellule liée
O4, on doit la mettre dans la cellule correspondante P4 dans la colonne Valeurs explicites.
Cette information ne nécessitant pas d'autre transformations, on peut la transférer telle
qu'elle est grâce à l'expression =O4 qu'on va écrire dans la cellule P4.
[Link]
Travail à faire 8
1. À l'aide de procédures VBA liées aux événements Change des zones de texte
txtNom, txtPrenom et txtEmail, extrayez les informations saisies dans ces
41 contrôles respectivement dans les cellules correspondantes.
2. Gérez le cas où les zone de texte sont vides, il faut que les cellules
correspondantes dans la colonne Valeurs explicites soient elle aussi vides (pas de
valeur 0).
Pour éviter trop de code VBA, nous avons utilisé des boutons d'option Contrôle de
formulaire. Ces contrôles groupés à l'aide d'une zone de groupe, renvoient chacun, comme
valeur de retour, son indice dans le groupe, le premier bouton créé renvoie la valeur 1, le
deuxième renvoie la valeur 2, le troisième renvoie la valeur 3 etc. Un retour de ce type n'est
pas clair et ne facilite pas la lecture, ce qui nécessite l'utilisation de la fonction Excel INDEX()
pour extraire à partir du tableau T_Sexe sur la feuille Parametres, la valeur explicite
équivaut à cet indice retourné. La fonction INDEX() permet d'extraire un élément qui se
trouve dans une ligne donnée dans une matrice (tableau). Pour fonctionner, cette fonction a
besoin de deux arguments obligatoires qui sont la matrice c'est à dire le tableau à partie
duquel elle va faire l'extraction et le numéro de ligne à extraire. Le troisième argument
numéro de colonne est facultatif, on l'utilise dans le cas où la matrice est formée de
plusieurs colonnes et l'élément recherché se trouve dans une colonne autre que la première.
La syntaxe est la suivante :
[Link]
Dans notre cas, la matrice c'est le tableau T_Sexe qui se trouve sur la feuille
Parametres et le numéro de ligne est donné par la valeur retournée par les boutons d'option
et qui est capturé dans la cellule liée O7 ; le troisième argument (numéro de colonne) quant
à lui, on peut l'ignorer puisque le tableau source est formé d'une seule colonne.
42
=INDEX(T_Sexe[Sexe];O7)
Le déroulement de l'opération est montré par l'animation ci-après.
[Link]
Remarque
43
La liste déroulante renvoie l'indice (le numéro d'ordre) de l'élément sélectionné dans
la liste, le premier élément indice 1, le deuxième élément indice 2 etc. Ce nombre entier
retourné est récupéré dans la cellule liée à la liste.
[Link]
Travail à faire 9
2. Dans la cellule P8, utilisez la fonction INDEX() pour extraire à partir du tableau
T_Niveau le niveau choisi par l'utilisateur.
3. Gérez le cas où aucun niveau n'est sélectionné, la cellule P8 dans ce cas doit
rester vide
Une case à cocher renvoie à la cellule liée la valeur VRAI (TRUE) lorsqu'elle est activée
(cochée) et la valeur FAUX (FALSE) lorsqu'elle est désactivée (décochée).
[Link]
On va donc créer une case à cocher avec le label Ms Word et définir la cellule O9
comme cellule qui lui est liée, puis dans la cellule P9 on va utiliser la fonction SI pour vérifier
le contenu de la cellule O9 et mettre le texte OUI si c'est VRAI sinon le texte NON. La syntaxe
est la suivante :
45 =SI(O9=VRAI;"OUI";"NON")
Attention
On ne met pas le mot VRAI entre guillemets car il ne s'agit pas d'un texte mais plutôt
une valeur booléenne.
Travail à faire 10
1. Insérez les cases à cocher et configurez les cellules liées pour les différents
logiciels.
2. Dans la colonne Valeurs explicites, insérez les fonctions adéquates pour obtenir
le texte OUI si la case est cochée et le texte NON dans le cas contraire
[Link]
Capter et exploiter la valeur retournée par les
barres de défilement et les toupies
Les barres de défilement et les toupies fonctionnent selon le même principe dans la
46 mesure où elles retournent toutes une valeur numérique entière qui peut être captée dans
une cellule liée. Ces deux types de contrôles possèdent des boutons d'incrémentation et de
décrémentation qui font varier la valeur retournée entre une valeur minimale et une valeur
maximale.
Travail à faire 11
Utilisation d'une barre de défilement ou bien d'une toupie pour proposer une
durée de formation
1. Insérez une Barre de défilement.
2. Paramétrez ce contrôle comme suit :
Valeur active : 3
Valeur minimale : 1
Valeur maximale : 6
Valeur du petit pas : 1
Valeur du grand pas : 1
Cellule liée : O13
3. Dans la cellule P13 (colonne : valeurs explicites), recopiez le contenu de la cellule
O13
4. Modifiez le format de la cellule P13 pour qu'elle affiche le texte "semaine" à droite
du nombre. Ce texte doit s'accorder en nombre (prendre un s si le nombre est
supérieur à 1)
5. Ajoutez une forme Rectangle au-dessus de la barre de défilement pour afficher la
durée proposée (le contenu de la cellule P13)
[Link]
47
La base de données est formée de colonnes appelées Champs qui correspondent aux
désignations de la première colonne de ce tableau, avec deux différences :
1. Insérer une nouvelle ligne dans la base juste au-dessous de la ligne d'en-tête
2. Copier le contenu de toutes les cellules de la colonne Valeurs explicites et
coller leurs Valeurs dans les cellules de la nouvelle ligne qu'on vient d'insérer
dans la base. On peut copier-coller le contenu des cellules une à une ce qui
risque d'être fastidieux, ou bien puisque les données sont dans le même ordre
dans les deux tableaux, effectuer un collage spécial en précisant l'option
Valeurs et format des nombres et en cochant la case Transposé vu que les
données sont agencées verticalement dans le tableau source alors que dans le
tableau cible on doit les coller horizontalement. L'animation ci-après montre un
collage spécial des valeurs avec transposition.
[Link]
48
Créer la macro
Pour créer une macro, on peut taper du code VBA dans l'éditeur VBE ou bien utiliser
l'enregistreur de macro pour enregistrer les différentes étapes qui mènent à la réalisation
de la tâche voulue, chose qu'on va faire dans le cas présent.
[Link]
Une fois le bouton Enregistrer une macro est activé, une boite de dialogue apparait et
vous invite à donner un nom à la macro. Répondez à cette invitation en saisissant un nom
significatif dans la zone Nom de la macro, en occurrence je propose le nom remplirBDD. Les
autres réglages laissez-les tels quels puis valider avec le bouton OK.
49
[Link]
50
L'enregistrement de la macro peut aussi être arrêté par le bouton carré qui fait son
apparition dans la barre d'état de Excel.
[Link]
Exécuter la macro
[Link]
52
La macro marche parfaitement, elle accompli avec succès la mission dont elle est
chargée. Reste à rendre le formulaire un peu plus convivial en affectant l'exécution de la
macro à un bouton de commande.
L'exécution d'une macro peut être affectée à un bouton de commande, mais on peut
aussi l'affecter à une forme insérée sur la feuille Excel. La méthode d'affectation d'une
macro diffère selon la nature de l'objet à utiliser.
[Link]
Si cette opération n'est pas faite à ce stade, on peut la faire à posteriori en cliquant
droit sur le bouton puis de choisir la commande Affecter une macro dans le menu
contextuel qui apparait, ce qui a pour effet de faire réapparaitre la même boite de dialogue
pour sélectionner la macro à affecter.
53
Préférez l'une de ces deux dernières méthodes car elles mènent directement là où il
faut écrire le code. Une fois dans l'éditeur, vous n'avez qu'à saisir le nom de la macro et rien
d'autre, en occurrence remplirBDD pour lui faire appel comme le montre la capture
suivante.
[Link]
54
Sachez qu'on peut aussi affecter une macro à une forme (un rectangle, une flèche ou
autre). D'ailleurs, ces formes donnent plus de possibilités de mise en forme et de là un
meilleur rendu esthétique.
Avant de procéder à l'affectation de la macro, vous devez d'abord insérer une forme
de votre choix à partir de la galerie Formes dans le groupe Illustrations sous l'onglet
Insertion.
[Link]
55
Pour affecter une macro à une forme, vous procédez de la même manière que pour un
bouton de commande contrôle de formulaire, c'est à dire un clic droit puis choisir la ligne
Affecter une macro dans le menu contextuel ; après quoi vous sélectionnez le nom de la
macro dans la boite de dialogue Affecter une macro puis validez.
[Link]
56
À présent que la macro est assignée à un objet cliquable, l'utilisateur n'a plus à aller
chercher la macro dans le ruban Développeur pour l'exécuter, il n'a qu'à cliquer sur le
bouton (ou la forme) adéquat en bas du formulaire pour voir ses entrées validées et
intégrées à la base de données.
Réinitialiser le formulaire
Le sujet de cette section consiste à réinitialiser les champs du formulaire dans le but de
le préparer à une nouvelle saisie. L'opération étant automatisable, on va donc créer une
macro qui exécute les différentes tâches nécessaires et l'associer à un bouton de commande
(ou bien à une forme). Ayant déjà vu comment enregistrer une macro, je vous confie ce
travail à travers l'exercice suivant.
[Link]
Travail à faire 12
Créer une macro qui réinitialise les champs du formulaire et l'affecter à une
forme.
[Link]
Améliorer l'application
À ce stade, notre travail semble bien marcher puisque les trois tâches demandées sont
effectuées, à savoir :
58
3. Permettre la saisie des informations via l'interface graphique du
formulaire
4. Transformer les données recueillies en des données exploitables dans un
tableau intermédiaire
5. Transférer ces données exploitables vers la base de données
Mais n'oublions pas cette règle : Un programmeur aguerri ne fait jamais confiance à
l'utilisateur. C'est à dire qu'on ne sait jamais d'avance ce que l'utilisateur va saisir. Si celui-ci
ne respecte pas les consignes du formulaire et saisit n'importe quoi, ceci met en péril la
cohérence des informations enregistrées dans la base de données. De ce fait, on doit
toujours prévoir la saisie des informations non appropriées et les traiter par anticipation.
Travail à faire 13
[Link]
Table des matières
Les différents types de contrôles dans un formulaire ................................................ 1
Où trouver les contrôles ............................................................................................... 2
Différences entre Contrôles ActiveX et Contrôles de Formulaire ................................ 3
59
Création des objets de formulaire ............................................................................ 4
Préparer le classeur ...................................................................................................... 5
La feuille Paramètres ................................................................................................ 5
La feuille BDD ............................................................................................................ 6
La feuille Formulaire ................................................................................................. 6
Création et paramétrage des contrôles ........................................................................ 7
Les zones de texte ..................................................................................................... 7
Les étiquettes.......................................................................................................... 11
Les boutons radio.................................................................................................... 13
Les zones de groupe ............................................................................................... 15
Les cases à cocher ................................................................................................... 17
Les listes .................................................................................................................. 19
Les barres de défilement ........................................................................................ 29
Les toupies .............................................................................................................. 31
Les boutons de commande ..................................................................................... 35
Remplir la base de données .................................................................................... 37
Récupérer les valeurs renvoyées par les contrôles .................................................... 37
Récupérer les informations saisies dans une zone de texte .................................. 38
Capter et exploiter la valeur retournée par les boutons d'option ......................... 41
Capter et exploiter la valeur retournée par une liste déroulante .......................... 43
Capter et exploiter la valeur retournée par une case à cocher .............................. 44
Capter et exploiter la valeur retournée par les barres de défilement et les toupies
.......................................................................................................................................... 46
Alimenter la base de données .................................................................................... 46
Créer la macro......................................................................................................... 48
Exécuter la macro ................................................................................................... 51
Affecter une macro à un objet ................................................................................ 52
Réinitialiser le formulaire ....................................................................................... 56
Améliorer l'application ........................................................................................... 58
Table des matières ................................................................................................. 59
[Link]