Blog ENI : Toute la veille numérique !
En raison d'une opération de maintenance, le site Editions ENI sera inaccessible le mardi 10 décembre, en début de journée. Nous vous invitons à anticiper vos achats. Nous nous excusons pour la gêne occasionnée
En raison d'une opération de maintenance, le site Editions ENI sera inaccessible le mardi 10 décembre, en début de journée. Nous vous invitons à anticiper vos achats. Nous nous excusons pour la gêne occasionnée
  1. Livres et vidéos
  2. Macros et langage VBA
  3. Les formulaires utilisateur
Extrait - Macros et langage VBA  Découvrez la programmation sous Excel (2e édition)
Extraits du livre
Macros et langage VBA Découvrez la programmation sous Excel (2e édition)
7 avis
Revenir à la page d'achat du livre

Les formulaires utilisateur

Objectifs du chapitre

Dans ce chapitre, vous allez découvrir les formulaires utilisateurs qui servent d’interfaces entre votre programme et les utilisateurs de façon plus intuitive et agréable qu’au travers des sommaires et parfois austères boîtes de dialogue vues jusqu’à présent.

Vous aborderez les principaux contrôles avec lesquels les utilisateurs pourront interagir et vous créerez votre premier formulaire.

Vous terminerez ce chapitre en adaptant certains exercices des précédents chapitres avec des formulaires utilisateur spécifiquement créés.

Les formulaires utilisateur : UserForm

Qu’est-ce qu’un formulaire utilisateur ?

Lorsque vous souhaitez demander une série d’informations à un utilisateur, comme un nom, un prénom ou une date de naissance par exemple, vous pouvez afficher successivement trois boîtes de dialogue de type InputBox. Le risque est que l’utilisateur se trompe à une des étapes et soit obligé de recommencer le processus.

Les formulaires utilisateur sont des boîtes de dialogue évoluées, dans lesquelles vous pouvez faire apparaître des objets avec lesquels l’utilisateur pourra interagir ; ces objets sont appelés contrôles.

Selon vos besoins métiers et le déroulement que vous souhaitez proposer à vos utilisateurs, les formulaires peuvent être très élaborés ou fort simples.

Voici deux formulaires, un simple et l’autre plus complexe, permettant aux utilisateurs d’insérer automatiquement des informations dans des feuilles Excel :

images/19SOB01N.png
images/19SOB02N.png

Dans la section suivante, vous allez voir quelques-uns de ces contrôles, et l’information principale que vous pourrez en tirer.

Au même titre que les modules, chaque formulaire utilisateur sera représenté dans l’Explorateur de projets. Vous les trouverez dans le dossier nommé Feuilles.

images/19SOB03N.png

Créer un premier formulaire

Afin d’offrir une interface élaborée aux utilisateurs, quelques manipulations très simples et rapides à effectuer sont nécessaires.

Ajouter un formulaire utilisateur

Avant de pouvoir manipuler un formulaire utilisateur, il faut l’ajouter au classeur. Vous disposez de deux méthodes pour créer un nouveau formulaire, il est également possible d’en importer un existant.

Par le menu

 Pour ajouter un nouveau formulaire directement depuis le menu, activez le menu Insertion et choisissez UserForm.

images/19SOB04N.png

Directement dans l’Explorateur de projets

 Effectuez un clic droit dans l’Explorateur de projets, sélectionnez le sous-menu Insertion, puis choisissez UserForm.

images/19SOB05N.png

Le premier formulaire aura pour nom par défaut UserForm1.

images/19SOB06N.png

 Double cliquez sur l’objet UserForm1 dans l’Explorateur de projets pour afficher le formulaire et le personnaliser.

Personnaliser un formulaire utilisateur

La première étape, une fois le formulaire créé, est de lui attribuer les dimensions que vous souhaitez.

Dimensionner le formulaire

 Utilisez la souris pour déplacer les carrés blancs.

images/19SOB07N.png

ou spécifiez les propriétés de hauteur (Height) et largeur (Width) directement dans la fenêtre des propriétés du formulaire.

images/19SOB08N.png

Ajouter les contrôles

Une fois que votre formulaire dispose des dimensions que vous souhaitez, vous pouvez y ajouter des contrôles. La fenêtre Boîte à outils vous permet de glisser-déposer les contrôles à insérer dans le formulaire.

images/19_01.png

 Si cette boîte à outils n’est pas visible, vous pouvez la faire apparaître en allant dans le menu Affichage puis en cliquant sur Boîte à outils.

 Dans cet exemple, cliquez sur l’outil Bouton de commande :

images/19_02.png

 Une fois le bouton de commande sélectionné dans la boîte à outils, cliquez dans le formulaire pour l’ajouter.

 Positionnez votre bouton à l’endroit qui vous plaira et ajustez ses dimensions selon votre envie.

 Sélectionnez le bouton et modifiez le texte qui apparaît dessus en changeant...

Les contrôles dans un formulaire utilisateur

Lorsque vous utilisez un formulaire utilisateur, plusieurs objets sont disponibles, tous ont des atouts et des utilisations dédiées. Ce paragraphe vous permet d’en aborder quelques-uns.

Chacun d’eux est présent dans la Boîte à outils.

images/19SOB14N.png

L’étiquette ou l’intitulé : Label

Une étiquette est un texte non modifiable par l’utilisateur. Une étiquette vous permet d’indiquer une information sur les autres contrôles qui sont dans le formulaire. Cet objet correspond au type Label en VBA. Vous pouvez l’ajouter à partir de la Boîte à outils (A).

Texte de l’étiquette : Caption

L’étiquette affiche un texte qui n’est modifiable que par l’intermédiaire du code, celui-ci est accessible via la propriété Caption du contrôle.

LblAccueil.Caption = "Soyez les bienvenus" 

Exemple 7 : modification du texte d’une étiquette

La zone de texte : TextBox

La zone de texte est une zone de saisie similaire à celle vue avec la fonction InputBox. Ce contrôle est présent dans la Boîte à outils (B). La zone de texte peut par exemple avoir une couleur de texte ou un fond personnalisable. La zone de texte correspond au type TextBox en VBA.

Texte saisi dans la zone : Value

Lorsque vous souhaitez récupérer le texte saisi dans une zone de texte, vous utiliserez la propriété Value du contrôle.

MsgBox TxtInformation.Value 

Exemple 8 : affichage du contenu d’une zone de texte

La zone de liste et la zone de liste modifiable : ListBox et Combobox

Lorsque votre utilisateur doit effectuer un choix parmi plusieurs valeurs possibles, les contrôles de zone de liste et zone de liste modifiable (aussi appelée zone de liste déroulante) sont à privilégier. La zone de liste (ListBox) affiche l’ensemble des valeurs qu’elle...

Gestion des événements dans un formulaire

Tout comme il est possible de déclencher des instructions sur des événements qui ont lieu dans les feuilles ou vos classeurs, il est possible déclencher des instructions avec les contrôles qui se situent à l’intérieur du formulaire.

La nomenclature de nommage des événements se fait selon la logique suivante : Private Sub NomDuControl_Evenement(). Quelques exemples suivent.

Au chargement du formulaire : UserForm_Initialize

Le premier événement qui se déclenche lorsqu’un formulaire se charge est son initialisation, il correspond à la macro UserForm_Initialize.

Vous pouvez utiliser cet événement pour remplir des valeurs par défaut dans les différents contrôles pour préparer au mieux le formulaire.

Private Sub UserForm_Initialize() 
   TxtDepartement.Value = "Comptabilité" 
End Sub 

Exemple 17 : instructions se déclenchant lors du chargement du formulaire.

Sur le clic : Click

Les interactions sur les interfaces peuvent se faire aussi bien au clavier qu’à la souris et les utilisateurs étant particulièrement habitués à cliquer, l’événement détectant le clic sur un contrôle permet de déclencher des instructions. La procédure se nommera...

Exercices

Dans le cadre de ces exercices, vous chercherez à créer une interface qui correspond à un besoin spécifique, une image exemple du formulaire utilisateur sera donnée pour vous aiguiller.

Formulaire élémentaire

 Créez un formulaire nommé UsfExercice1.

 Placez dans ce formulaire une zone de texte ainsi qu’un bouton. Le formulaire pourra ressembler à ceci :

images/19SOB15N.png

 Lorsque l’utilisateur cliquera sur le bouton, le texte contenu dans la zone de texte devra être ajouté dans la colonne A de la feuille active du classeur ThisWorkbook.

Aller un peu plus loin

 Créez un formulaire nommé UsfExercice2.

 Placez dans ce formulaire une zone de texte, un bouton ainsi qu’une case à cocher.

 Lorsque le formulaire s’affiche, la case à cocher devra être cochée (valeur True) et la zone de texte contiendra la valeur Canada.

Lorsque l’utilisateur clique sur le bouton, une boîte de dialogue doit apparaître et afficher le texte fourni, en lettres minuscules si la case est cochée, en majuscules si la case n’est pas cochée.

images/19SOB16N.png