Passer au contenu

Elaborer un formulaire

Pour faciliter, et encadrer, la saisie de données dans une feuille de calcul, concevez une fenêtre de dialogue spécifique, avec cases à cocher et menus déroulants.

Chaque fois que vous enregistrez un fichier ou lancez une impression dans un logiciel, une fenêtre de dialogue apparaît. Avec Excel, vous êtes en mesure de créer ce type de fenêtre afin de faciliter la saisie de données pour les
autres utilisateurs d’un classeur. Comparée à la grille de saisie de tout tableur, une telle fenêtre, appelée formulaire dans Excel, offre de multiples avantages. Vous pouvez encadrer très précisément la saisie de données, en proposant, par exemple,
des listes déroulantes limitant le nombre de choix possibles. Certes, un formulaire est complexe à créer, mais il peut ensuite être utilisé par un néophyte car il ressemble à une fenêtre de dialogue standard. Dans cette double page, nous allons vous
guider pas à pas dans l’élaboration d’un tel formulaire. Pour cela, nous utiliserons des macrocommandes en langage VBA, dont nous vous expliquions les bases dans le précédent numéro de l’Oi.

1. Posez le problème

Pour illustrer nos manipulations, nous partirons d’une base de données recensant les membres d’un club de modélisme, comme celle illustrée ci-contre. Le formulaire que vous allez créer servira à ajouter une personne à cette liste.
Cette base comporte six colonnes (ou champs). Certains champs, comme le Nom ou le Prénom, sont en saisie libre car les données tapées n’y sont pas contrôlées. Mais d’autres sont soumis à des restrictions. Ainsi, le champ
Sexe ne peut recevoir que F (féminin) ou M (masculin). Le champ Cotisation ne doit contenir que des valeurs numériques. Dans le champ Spécialité, on ne peut saisir que l’un des
contenus suivants : Avions, Bateaux, Trains ou Voitures. Enfin, le champ Région doit recevoir l’un des six libellés ci-après : Est, Nord, Ouest, Sud, Centre ou Paris et RP
(voir
écran).
L’objectif : élaborer un formulaire qui intègre l’ensemble de ces contraintes.

2. Créez le formulaire de saisie

Ouvrez l’Editeur Visual Basic en déroulant le menu Outils, Macro, Visual Basic Editor. Déroulez le menu Insertion, UserForm. Une fenêtre vide, nommée UserForm1, apparaît à l’écran. C’est votre
formulaire. Juste à côté, se trouve la boîte à outils Contrôles (voir écran) : vous l’utiliserez pour ajouter des zones de saisie et des listes déroulantes dans votre formulaire. Faites glisser, à la souris, le coin inférieur droit
du formulaire jusqu’à lui donner une taille qui corresponde au résultat attendu (voir l’écran qui illustre l’étape 11).

3. Modifiez le titre

Cliquez dans le formulaire et appuyez sur F4 : vous faites apparaître la fenêtre Propriétés de l’objet sélectionné (ici, le formulaire lui-même). Dans le champ Caption, qui détermine ce qui
sera affiché à l’écran, tapez Saisie d’un nouveau membre (voir écran) et appuyez sur Entrée : ce texte s’affiche dans la barre de titre du formulaire. Enfin, cliquez dans le champ (Name), tapez
FrmSaisie puis appuyez sur Entrée. Nous adoptons ici une règle, couramment utilisée, qui consiste à donner au formulaire et aux objets qu’il contient un nom dont les trois premières lettres en indiquent la nature
(Frm pour Formulaire, Btn pour bouton, Lst pour zone de liste, etc. ).

4. Tapez les intitulés

Vous allez commencer par ajouter une zone de texte : cliquez dans le formulaire pour faire apparaître la boîte à outils Contrôles. Dans cette boîte, cliquez sur le bouton Intitulé et tracez un rectangle
en haut du formulaire. Appuyez sur F4 pour ouvrir la fenêtre Propriétés. Il est inutile de nommer les champs de type Intitulé : ils ne servent qu’à afficher des textes. Dans le champ Caption,
tapez Fiche de saisie. Comme le titre est trop petit, cliquez dans le champ Font, puis sur le bouton qui apparaît à droite. Dans la fenêtre de polices, choisissez du Tahoma, en
gras avec une taille de 16 points et validez par OK. Vous allez ensuite placer les intitulés de chaque champ dans votre formulaire. Reproduisez les étapes de ce paragraphe jusqu’à obtenir un résultat proche de
notre exemple (voir écran).

5. Ajoutez un groupe d’options

Le champ Sexe est particulier : il ne peut prendre que deux états (masculin ou féminin).Pour le créer, cliquez sur le bouton Cadre et dessinez un rectangle sur le formulaire. Nommez-le FrmSexe et tapez, dans la propriété Caption, le texte Sexe. Puis, à l’intérieur de ce
cadre, dessinez deux boutons d’options (voir écran), que vous nommerez OptHomme et OptFemme, avec les propriétés Caption respectives Masculin et Féminin. Lorsque vous utiliserez le
formulaire, si vous sélectionnez l’un de ces boutons, l’autre sera automatiquement désélectionné.

6. Definissez les zones de texte

Dans la boîte à outils Contrôle, cliquez sur Zone de texte. Tracez un rectangle en face de l’intitulé Nom et donnez à cette zone de texte le nom TxtNom. De la même façon, ajoutez une
zone de texte TxtPrenom en face de l’intitulé Prénom, et une zone de texte TxtCotisation après l’intitulé Cotisation.

7. Disposez les listes déroulantes

Dans la boîte Contrôles, cliquez sur Zone de liste (pas sur Zone de liste modifiable). Tracez un rectangle devant l’intitulé Spécialité et donnez à cette zone de liste le nom
LstSpecialites (ne mettez pas de caractères accentués dans les noms). De la même façon, dessinez, devant l’intitulé Région, une zone de liste que vous nommerez LstRegion
(voir écran). Si votre zone
de liste n’est pas assez haute pour afficher tous les éléments qu’elle contient, des barres de défilement seront automatiquement ajoutées.

8. Placez les boutons

Un formulaire comporte toujours au moins deux boutons : OK pour valider la saisie et Annuler pour l’abandonner. Dans la boîte Contrôles, cliquez sur Bouton de commande et
dessinez un premier bouton. Donnez-lui le nom BtnOK et saisissez OK dans son champ Caption. De la même façon, ajoutez un autre bouton nommé BtnAnnuler et dont le champ Caption
contiendra Annuler. Votre formulaire a son aspect définitif (voir écran), mais il n’est pas encore exploitable.

9. Préparez la saisie…

Dans le volet de gauche de l’éditeur VBA, double-cliquez sur le dossier Modules, puis sur Module1 (si ce dernier n’apparaît pas, déroulez le menu Insertion, Module). Dans le volet de droite de
l’éditeur VBA, tapez le listing 1. Cette macro a trois fonctions : placer le point d’insertion en dessous de la dernière ligne du tableau, ajouter des éléments aux listes déroulantes (les fonctions AddItem) et ouvrir
le formulaire (l’instruction Show).

10. … et contrôlez-la

Dans l’éditeur VBA, double-cliquez sur FrmFormulaire pour afficher le formulaire. Double-cliquez sur le bouton Annuler et, entre les lignes Private Sub CmdAnnuler_Click() et End Sub,
tapez la commande Unload Me. De cette manière, quand vous cliquerez sur Annuler, le formulaire sera déchargé (unload) de la mémoire. De la même façon, double-cliquez sur le bouton OK et,
entre les lignes Private Sub CmdOK_Click() et End Sub, tapez le listing 2. Ici, tant que la valeur saisie dans le champ TxtCotisation n’est pas numérique, on demande à l’utilisateur de la
ressaisir. Puis, on écrit, dans les colonnes successives du tableau, les contenus des champs TxtNom, TxtPrenom… (la fonction UCase transforme en majuscules la valeur saisie). La variable OptHomme, vraie
ou fausse, détermine la lettre (M ou F) à écrire en colonne C. Enfin, les deux dernières instructions . Offset récupèrent les valeurs retenues dans les listes déroulantes.

11. Testez le formulaire

Revenez sous Excel, tapez Alt + F8 pour ouvrir la fenêtre Macros, sélectionnez Saisie et cliquez sur Exécuter. Votre formulaire apparaît. Saisissez et choisissez les
valeurs (voir écran), puis cliquez sur OK : les données sont écrites dans la première ligne vierge de la feuille de calcul, sous les enregistrements existants.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Etienne Oehmichen