Les formulaires en VBA sont une grande partie de ce qu'il faut apprendre dans ce langage. Peut-être un tiers au moins.
En VBA, vous connaissez peut-être les InputBox et autres Msgbox, permettant de saisir des valeus ou d'afficher un message. Ces éléments sont très pratiques et peuvent être utilisés en dehors d'un formulaire mais leur personnalisation est limitée. Si vous souhaitez aller plus loin, vous devrez utiliser des formulaires.
Un formulaire est une interface dont le but est de permettre à l'utilisateur final de saisir du contenu.
Par exemple, un formulaire permet à des agents de terrain de saisir leurs interventions, à des consultants de saisir leurs temps mensuel, à des techniciens d'uploader des images et de mettre de commentaires, etc.
En VBA, la création, la gestion et la maintenance des formulaires a été simplifiée pour un usage rapide efficace de ceux-ci.
Une fois dans l'éditeur VBA, il suffit d'insérer un formulaire, puis, via la boite à outils, d'insérer des contrôles de formulaire.
Ces derniers peuvent prendre plusieurs formes : intitulés (texte), zones de texte, images, zone de sélection (ou combo box), boutons de commande, etc.
Pour chaque contrôle de formulaire, on accèdera au volet propriétés afin de modifier celles-ci.
Par exemple, pour modifier le nom d'un contrôle de formulaire, on agit sur la propriété Name. Pour modifier son texte d'affichage, on modifie la propriété Caption. Et pour modifier la police (taille, gras, souligné ...), on travaille sur la propriété Font.
Certaines propriétés ne sont valables que pour certains contrôles de formulaire.
Par exemple la propriété Font ou TextAlign n'est pas valable pour une image, et la propriété Image n'est pas valable pour une zone de texte.
D'autres propriétés incontournables sont les suivantes :
RowSource, pour lier un contrôle "Liste de sélection" (Combobox) avec une liste de données.
BackColor, pour changer la couleur d'arrière plan d'une image.
TabIndex, pour définir l'ordre de tabulation d'un objet (ex : je veux naviguer dans mon formulaire en appuyant sur Tab, avec un ordre bien précis).
Enabled, pour activer ou désactive des contrôles de formulaire (ex : je veux que mon bouton de commande "Envoyer" soit désactivé sauf si la zone de texte "Prénom" est rempli.
MaxLength, pour limiter la saisie d'une zone à un certain nombre de caractères.
Value, pour afficher un texte par dessus une zone de saisie.
Créér des boutons et les lier avec des actions
Pour qu'un formulaire fonctionne, il est nécessaire de créer des boutons et de vérifier que ceux-ci sont assignés à une action.
Par exemple le bouton "Fermer le formulaire" doit être assigné avec une macro qui contient l'instruction "Unload Me".
Pour assigner une macro à un bouton, il suffit de double cliquer sur le bouton afin d'accéder au code de ce dernier. Celui-ci aura la mention Private Sub car il n'est supposé être visible pour les utilisateurs finaux.
Il est également possible de restreindre la saisie d'une zone de texte dans un formulaire à un certain type de données. Pour cela, il faut accéder au code de la zone de texte, puis sélectionner la méthode Keypress.
Ainsi, cette macro restreint la saisie de la zone de texte "txtSalaire" à des nombres seulement.
Private Sub txtSalaire_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("1234567890,-", Chr(KeyAscii)) = 0 Then KeyAscii = 0
End sub
Cet article vous a plus ? Découvrez nos formations pour en savoir plus sur les formulaires VBA.
Comments