Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. VBA Excel (versions 2021 et Microsoft 365)
  3. Les formulaires
Extrait - VBA Excel (versions 2021 et Microsoft 365) Programmer sous Excel : macros et langage VBA
Extraits du livre
VBA Excel (versions 2021 et Microsoft 365) Programmer sous Excel : macros et langage VBA
2 avis
Revenir à la page d'achat du livre

Les formulaires

Présentation

Les formulaires (également appelés boîtes de dialogue personnalisées, formulaires personnalisés, feuilles utilisateur ou UserForm) permettent de réaliser des interfaces utilisateur simples et conviviales pour la saisie, la modification ou la visualisation de données.

Les formulaires personnalisés sont des boîtes de dialogue sur lesquels vous pouvez :

  • placer des contrôles ActiveX tels que des zones de texte, des listes déroulantes, des boutons de commande... ;

  • associer du code VBA permettant de répondre aux différents événements utilisateurs (clic sur un bouton de commande, saisie d’une zone de texte, sélection dans une liste déroulante...).

Vous trouverez un exemple de formulaire dans ce chapitre. Par ailleurs, le chapitre Exemple d’application VBA Excel contient plusieurs formulaires et notamment un formulaire d’identification utilisateur.

Créer un formulaire

Un formulaire est créé dans une feuille UserForm.

 Pour insérer une feuille UserForm, accédez à Microsoft Visual Basic, puis faites Insertion - UserForm.

Une feuille appelée UserForm n (ex. : UserForm1) est insérée, un formulaire vide est affiché et la boîte à outils apparaît.

 Pour afficher la fenêtre des propriétés, faites : Affichage - Fenêtre propriétés ou images/st15.PNG ou [F4].

images/a06RIN01.png

(Name)

Nomme le formulaire.

Caption

Renseigne la barre de titre.

 Pour dimensionner le formulaire, sélectionnez-le et faites glisser les poignées de dimensionnement ou renseignez les propriétés Height et Width du formulaire.

L’option Contrôles complémentaires permet d’ajouter d’autres contrôles au niveau de la barre d’outils.

Liste des différents contrôles

Outil

Nom

Objet

images/i01N.png

Intitulé

Label

images/i02N.png

Zone de texte

TextBox

images/i03N.png

Zone de liste modifiable

ComboBox

images/i04N.png

Zone de liste

ListBox

images/i05N.png

Case à cocher

CheckBox

images/i06N.png

Bouton d’option

OptionButton

images/i07N.png

Bouton bascule

ToggleButton

images/i08N.png

Cadre

Frame

images/i09N.png

Bouton de commande

CommandButton

images/i10N.png

Contrôle onglet

TabStrip

images/i11N.png

Multipage (sélection de pages)

Multipage

images/i12N.png

Défilement

ScrollBar

images/i13N.png

Toupie (sélection de valeurs)

SpinButton

images/i14N.png

Image

Image

images/i15N.png

RefEdit (sélection de plages)

RefEdit

Dessiner un contrôle

 Sélectionnez le contrôle à créer et réalisez un cliqué-glissé pour tracer son cadre d’apparition.

Dès que le bouton de la souris est relâché, le contrôle s’affiche et l’outil Sélectionner les objetsimages/06ri01ic.PNG redevient l’outil actif.

Pour tracer à la suite plusieurs contrôles de même type, réalisez un double clic sur l’outil correspondant.

Découvrir quelques propriétés...

Personnaliser un formulaire

1. Écrire des procédures

 Pour afficher la fenêtre de code d’un contrôle :

réalisez un double clic sur le contrôle auquel vous souhaitez affecter un code, ou sélectionnez le contrôle, puis faites :

Affichage - Code ou [F7]

 Pour insérer un nouvel événement, ouvrez la liste de droite et sélectionnez l’événement attendu.

Sans cette manipulation, l’événement proposé pour la majorité des contrôles est l’événement Click.

 Pour revenir en affichage du contrôle, faites :

Affichage - Objet ou [Shift][F7]

2. Liste des événements associés aux principaux contrôles

Activate

Survient lorsque la feuille devient active.

AddControl

Survient lors de l’insertion d’un contrôle dans une feuille.

AfterUpdate

Survient après la modification des données.

BeforeDragOver

Survient lorsqu’une opération de glissé-déplacé est en cours.

BeforeDropOrPaste

Survient lorsque l’utilisateur est sur le point de déplacer ou de coller des données sur un objet.

BeforeUpdate

Survient avant la modification des données.

Change

Survient lors de la modification de la propriété Value.

Click

Survient lorsque l’utilisateur clique sur un contrôle ou lorsqu’il sélectionne de façon définitive une valeur parmi d’autres.

DblClick

Survient lorsque l’utilisateur double clique.

Deactivate

Survient lorsque la feuille cesse d’être la fenêtre active.

DropButtonClick

Survient chaque fois qu’une liste déroulante modifiable apparaît et disparaît.

Enter

Survient avant qu’un contrôle ne reçoive réellement le focus d’un contrôle d’une...

Exemple de formulaire personnalisé

1. Présentation

Cet exemple montre comment réaliser un formulaire personnalisé destiné à saisir ou modifier les fiches "employés". Le classeur Employés.xlsm contient deux feuilles de calcul et un formulaire.

La feuille "Employés" contient la liste des employés :

images/a06RIN02.png

La feuille "Services" contient la liste des services :

images/a06RIN03.png

Le formulaire "Employés" permet :

  • de modifier les informations d’un employé et de mettre à jour la feuille Excel Employés,

  • de créer un nouvel employé et de l’ajouter dans la liste de la feuille Excel Employés. 

La liste des services est renseignée à partir de la feuille Services.

images/07RI03N.png

Liste des contrôles du formulaire Employés :

Type de contrôle

Nom

1

Zone de liste

lstEmployes

2

Bouton de commande

cmdNouveau

3

Bouton option

optMme

4

Bouton option

optMlle

5

Bouton option

optM

6

Zone de texte

txtNom

7

Zone de texte

txtPrénom

8

Zone de liste

lstServices

9

Bouton de commande

cmdValider

10

Bouton de commande

cmdFermer

2. Code associé au bouton macro de la fiche Employés

Ce code est contenu dans le module de classe ThisWorkbook.

Sub Affiche_Formulaire() 
  '   Affichage du formulaire Employés 
  Employés.Show 
End Sub 

3. Code VBA associé au formulaire

Option Explicit 
' Nom de l'application 
Const strAppName = "Saisie des employés" 
Dim bNouveau As Boolean 
________________________________________________________________ 
Private Sub UserForm_Initialize() 
   Dim oRng As Range 
   Dim oCell As Range 
   ...