Créer des infobulles (tooltips) dans un UserForm, Excel VBA

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é ControlTipText où 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é ControlTipText contient le texte qui sera affiché comme infobulle.
  • Dans cet exemple, TextBox1.ControlTipText est défini sur le message « Entrez votre nom ici » qui sera affiché lorsque l’utilisateur survolera TextBox1.
  • 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édure ShowTooltip pour afficher l’infobulle personnalisée.
  • ShowTooltip : Cette procédure positionne le TooltipForm par 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é ControlTipText soit 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.

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x