Créer des infobulles (tooltips) dans un UserForm, Excel VBA
Pour créer des infobulles (tooltips) dans un UserForm en utilisant VBA Excel, vous pouvez utiliser la propriété ControlTipText des contrôles du formulaire (comme les boutons, les zones de texte, les comboboxes, etc.). Cela permet d’afficher une petite description lorsque l’utilisateur survole un contrôle, fournissant ainsi des informations utiles ou des astuces supplémentaires.
Voici un guide détaillé avec le code pour implémenter des infobulles dans votre UserForm :
Étapes pour créer des infobulles dans un UserForm
1. Créer et concevoir le UserForm :
- Ouvrez l’éditeur VBA dans Excel (Alt + F11).
- Créez un nouveau UserForm en cliquant sur
Insertion > UserForm. - Ajoutez des contrôles (comme des TextBox, des CommandButton, des ComboBox) dans le UserForm.
2. Définir les infobulles avec la propriété ControlTipText :
- Chaque contrôle dans un UserForm a une propriété
ControlTipTextoù vous pouvez spécifier le texte de l’infobulle. - Cette infobulle s’affichera lorsque l’utilisateur survolera le contrôle.
Exemple de code pour ajouter des infobulles aux contrôles
Private Sub UserForm_Initialize()
' Définir les infobulles pour les contrôles
' Infobulle pour une TextBox
TextBox1.ControlTipText = "Entrez votre nom ici."
' Infobulle pour un CommandButton
CommandButton1.ControlTipText = "Cliquez pour soumettre le formulaire."
' Infobulle pour une ComboBox
ComboBox1.ControlTipText = "Sélectionnez une option dans la liste déroulante."
' Infobulle pour une CheckBox
CheckBox1.ControlTipText = "Cochez cette case si vous êtes d'accord avec les termes."
' Infobulle pour un Label
Label1.ControlTipText = "Ce label affiche les instructions."
End Sub
Explication du code :
- UserForm_Initialize : Cet événement est exécuté lorsque le UserForm est initialisé. Il est utilisé pour configurer les propriétés initiales des contrôles du formulaire.
- Propriété
ControlTipText: - La propriété
ControlTipTextcontient le texte qui sera affiché comme infobulle. - Dans cet exemple,
TextBox1.ControlTipTextest défini sur le message « Entrez votre nom ici » qui sera affiché lorsque l’utilisateur survoleraTextBox1. - Vous pouvez faire de même pour d’autres contrôles comme des boutons, des comboboxes, etc.
Exemple avancé avec des infobulles dynamiques
Si vous souhaitez avoir un contrôle plus dynamique sur les infobulles, vous pouvez changer le texte de l’infobulle en fonction de certaines conditions, comme la sélection d’une option dans une ComboBox ou la valeur entrée dans une TextBox.
Par exemple, si vous souhaitez afficher une infobulle différente en fonction de ce que l’utilisateur sélectionne dans une ComboBox :
Private Sub ComboBox1_Change()
If ComboBox1.Value = "Option 1" Then
ComboBox1.ControlTipText = "Vous avez sélectionné l'Option 1."
ElseIf ComboBox1.Value = "Option 2" Then
ComboBox1.ControlTipText = "Vous avez sélectionné l'Option 2."
Else
ComboBox1.ControlTipText = "Veuillez sélectionner une option."
End If
End Sub
Améliorer les infobulles avec un comportement similaire à des ToolTips
Excel VBA ne prend pas en charge directement des infobulles complexes comme celles que l’on trouve sur les pages web (par exemple, avec des couleurs, des polices différentes, etc.), mais vous pouvez simuler ce comportement en créant un formulaire personnalisé pour les infobulles.
Exemple : Créer un formulaire d’infobulle personnalisé
Dim TooltipForm As Object
Private Sub UserForm_Initialize()
' Créer une nouvelle instance de TooltipForm
Set TooltipForm = New UserForm
TooltipForm.Visible = False ' Masquer au départ
End Sub
Private Sub TextBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
ShowTooltip "Entrez votre nom ici.", TextBox1
End Sub
Private Sub ShowTooltip(TooltipText As String, Control As Object)
' Positionner le TooltipForm près du contrôle
TooltipForm.Caption = TooltipText
TooltipForm.Top = Control.Top + Control.Height + 5
TooltipForm.Left = Control.Left
TooltipForm.Visible = True
End Sub
Explication du code pour un tooltip personnalisé :
- TooltipForm : Il s’agit d’un nouveau UserForm qui agira comme un tooltip personnalisé. Il est initialement caché.
- TextBox1_MouseMove : Cet événement est déclenché lorsque l’utilisateur déplace la souris sur
TextBox1. Il appelle la procédureShowTooltippour afficher l’infobulle personnalisée. - ShowTooltip : Cette procédure positionne le
TooltipFormpar rapport au contrôle (dans ce cas,TextBox1) et l’affiche avec le texte de l’infobulle souhaité.
Considérations :
- Visibilité : L’infobulle doit être visible uniquement lorsque cela est nécessaire. Pour une infobulle personnalisée, vous devez la masquer lorsque l’utilisateur éloigne la souris du contrôle.
- Performance : Bien que la propriété
ControlTipTextsoit simple et fonctionne bien dans la plupart des cas, l’utilisation d’un formulaire personnalisé pour les infobulles peut offrir plus de flexibilité mais peut nécessiter du code supplémentaire pour gérer l’affichage et la disparition au bon moment.
Avec cette méthode, vous pouvez créer des formulaires plus interactifs et conviviaux, fournissant à l’utilisateur des astuces utiles lorsque nécessaire.