Comment faire pour utiliser Visual Basic pour Applications (VBA) pour modifier les formulaires utilisateur dans Excel

Résumé

Cet article décrit comment modifier des formulaires utilisateur par programmation dans Microsoft Excel. Il inclut Microsoft Visual Basic pour Applications et des exemples de macros (VBA) qui montrent comment tirer parti des fonctionnalités des formulaires utilisateur et comment utiliser les contrôles de ActiveX™ qui sont disponibles pour les formulaires utilisateur.

Une introduction aux principes de base des formulaires utilisateur décrit comment afficher les UserForms, comment masquer temporairement les UserForms et comment faire pour faire disparaître les UserForms. Vous sont également montré comment utiliser les événements les plus courants qui sont associés à des objets UserForm, l’événement Initialize , l’événement Click et l’événement Terminate . Un ou plusieurs des exemples suivants montrent comment utiliser chacun des contrôles suivants ActiveX™ dans un objet UserForm :
  • Contrôle Label
  • Contrôle TextBox
  • Contrôle CommandButton
  • Contrôle ListBox
  • Contrôle ComboBox
  • Contrôle Frame
  • Contrôle OptionButton
  • Contrôle CheckBox
  • ToggleButton , contrôle
  • Contrôle TabStrip
  • Contrôle multiPage
  • Contrôle de barre de défilement
  • SpinButton , contrôle
  • Contrôle RefEdit
  • Contrôle de l’image

INTRODUCTION

Cet article décrit comment utiliser VBA pour apporter des modifications dans les formulaires utilisateur dans Excel.

Plus d'informations

Microsoft fournit des exemples de programmation à titre d'illustration uniquement, sans garantie expresse ou implicite. Ceci inclut, mais n'est pas limité à, les garanties implicites de qualité marchande ou d'adéquation à un usage particulier. Cet article suppose que vous êtes familiarisé avec le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les ingénieurs du support technique Microsoft peuvent vous expliquer les fonctionnalités d'une procédure particulière, mais ils ne modifieront pas ces exemples pour fournir des fonctionnalités supplémentaires ou créer des procédures répondant à vos besoins spécifiques.

Notions de base sur UserForm

Comment faire pour afficher un UserForm

La syntaxe qui est utilisée pour afficher un UserForm par programme est le suivant :
UserFormName.Show
Pour afficher un UserForm nommé UserForm1, utilisez le code suivant :
UserForm1.Show
Vous pouvez charger un objet UserForm dans la mémoire sans l’afficher réellement. Il peut s'écouler plusieurs secondes avant qu'un UserForm complexe ne s'affiche. Dans la mesure où vous pouvez précharger un objet UserForm dans la mémoire, vous pouvez décider du moment à subir ce traitement. Pour charger la feuille UserForm1 en mémoire sans l’afficher, utilisez le code suivant :
Load UserForm1
Pour afficher l’objet UserForm, vous devez utiliser la méthode Show qui a été précédemment affichée.

Comment faire pour masquer temporairement un UserForm

Si vous souhaitez masquer temporairement un objet UserForm, utilisez la méthode Hide . Voulez-vous masquer un objet UserForm, si votre application implique le déplacement entre les UserForms. Pour masquer un objet UserForm, utilisez le code suivant :
UserForm1.Hide
Pour plus d’informations, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
213747 XL2000 : comment passer UserForms personnalisés avec des boutons de commande

Comment faire pour supprimer un objet UserForm à partir de la mémoire

Pour supprimer un objet UserForm à partir de la mémoire, utilisez l’instruction Unload . Pour décharger un UserForm nommé UserForm1, utilisez le code suivant :
Unload UserForm1
Si vous déchargez un objet UserForm dans une procédure événementielle qui est associé à un objet UserForm ou qui est associé à un contrôle sur un formulaire utilisateur (par exemple, vous cliquez sur un contrôle bouton de commande ), vous pouvez utiliser « Me » mot clé au lieu du nom de l’objet UserForm. Pour utiliser le « Me » mot clé pour décharger un objet UserForm, utilisez le code suivant :
Unload Me

Comment utiliser des événements de l’objet UserForm

UserForms prend en charge plusieurs événements prédéfinis que vous pouvez joindre des procédures VBA. Lorsque l’événement se produit, la procédure que vous avez associé à l’événement s’exécute. Une seule action qui est effectuée par un utilisateur peut lancer plusieurs événements. Parmi les plus fréquemment utilisés d’événements pour un objet UserForm sont l’événement Initialize , l’événement Click et l’événement Terminate .

Remarque Un module de Visual Basic qui contient une procédure d’événement peut être appelé un module « derrière » le UserForm. Un module qui contient les procédures d’événement n’est pas visible dans la collection de Modules de la fenêtre de l’Explorateur de projet de Microsoft de l’éditeur Visual Basic. Vous devez double-cliquer sur le corps d’un objet UserForm pour afficher le module de Code de l’objet UserForm.

Comment intercepter des événements de l’objet UserForm

Pour intercepter des événements de l’objet UserForm, procédez comme suit :
  1. Créer un nouveau classeur dans Excel.
  2. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  4. Double-cliquez sur l' objet UserForm pour afficher la fenêtre Code pour l’objet UserForm.
  5. Dans le module, tapez le code suivant :
    Private Sub UserForm_Click()
    Me.Height = Int(Rnd * 500)
    Me.Width = Int(Rnd * 750)

    End Sub

    Private Sub UserForm_Initialize()

    Me.Caption = "Events Events Events!"
    Me.BackColor = RGB(10, 25, 100)

    End Sub

    Private Sub UserForm_Resize()

    msg = "Width: " & Me.Width & Chr(10) & "Height: " & Me.Height
    MsgBox prompt:=msg, Title:="Resize Event"

    End Sub


    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

    msg = "Now Unloading " & Me.Caption
    MsgBox prompt:=msg, Title:="QueryClose Event"

    End Sub

    Private Sub UserForm_Terminate()

    msg = "Now Unloading " & Me.Caption
    MsgBox prompt:=msg, Title:="Terminate Event"

    End Sub
  6. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.
Lors du premier chargement de l’objet UserForm, la macro utilise l’événement Initialize pour modifier la propriété Caption de l’objet UserForm à « Événements événements événements ! » et la propriété BackColor bleu foncé.

Lorsque vous cliquez sur l’objet UserForm, vous déclenchent l’événement Click . L’événement Click redimensionne l’objet UserForm. Étant donné que vous avez créé une procédure pour l’événement Resize , vous recevez deux messages une fois que vous cliquez sur l’objet UserForm. L’événement Resize apparaît deux fois, car le code derrière l’événement Click modifie la propriété de largeur et de la propriété Height de l’objet UserForm.

Fermeture de l’objet UserForm déclenche l’événement QueryClose . L’événement QueryClose affiche une boîte de message qui contient la légende que vous avez donné à l’objet UserForm dans le code pour l’événement Initialize . Vous pouvez utiliser l’événement QueryClose lorsque vous souhaitez effectuer un ensemble d’actions si l’utilisateur ferme l’objet UserForm.

L’événement Terminate génère ensuite une boîte de message indiquant que la légende de l’objet UserForm est UserForm1. L’événement Terminate se produit après que l’objet UserForm est supprimé de la mémoire et la légende de l’objet UserForm retourne à son état d’origine.

Comment faire pour empêcher la fermeture en utilisant le bouton de fermeture d’un objet UserForm

Lorsque vous exécutez un objet UserForm, un bouton de fermeture est ajouté dans le coin supérieur droit de la fenêtre UserForm. Si vous souhaitez empêcher la fermeture à l’aide du bouton Fermer l’objet UserForm, vous devez intercepter l’événement QueryClose .

L’événement QueryClose se produit juste avant que l’objet UserForm est déchargé de la mémoire. Pour déterminer la façon dont l’objet UserForm est fermé, utilisez l’argument CloseMode de l’événement QueryClose . La valeur de vbFormControlMenu pour l’argument CloseMode indique qu’utilisateur a cliqué sur le bouton Fermer . Pour conserver l’objet UserForm actif, définir l’argument Cancel de l’événement QueryClose à True. Pour utiliser l’événement QueryClose pour empêcher la fermeture à l’aide d’un objet UserForm le
Fermer bouton, procédez comme suit :
  1. Créer un nouveau classeur dans Excel.
  2. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  4. Ajoutez un contrôle CommandButton sur l’objet UserForm.
  5. Double-cliquez sur l' objet UserForm pour afficher la fenêtre Code pour l’objet UserForm.
  6. Dans la fenêtre Code, tapez le code suivant :
    Private Sub CommandButton1_Click()
    Unload Me

    End Sub

    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

    IF CloseMode = vbFormControlMenu Then
    Cancel = True
    Me.Caption = "Click the CommandButton to close Me!"
    End If

    End Sub
  7. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.
L’objet UserForm n’est pas fermé lorsque vous cliquez sur le
Bouton Fermer . Vous devez cliquer sur le
Contrôle CommandButton pour fermer l’objet UserForm.


Pour plus d’informations, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :
207714 XL2000 : erreurs d’exécution à l’aide de la collection UserForms

211527 XL2000 : Impossible de faire glisser contrôle UserForm dans une feuille de calcul

211868 XL2000 : erreur d’exécution de macro qui insère un contrôle dans un UserForm

213582 XL2000 : problèmes lorsque vous utilisez la macro pour ajouter un contrôle à un UserForm

213583 XL2000 : Impossible d’afficher les UserForms dans d’autres projets

213736 XL2000 : comment faire pour déterminer la touche enfoncée en même temps que le bouton de la souris

213744 XL2000 : comment faire pour masquer temporairement un UserForm

213747 XL2000 : comment passer UserForms personnalisés avec des boutons de commande

213749 XL2000 : comment utiliser un objet UserForm pour la saisie de données

213768 XL2000 : comment redimensionner dynamiquement un formulaire utilisateur

213774 XL2000 : comment créer un écran de démarrage avec un objet UserForm

Code VBA

Excel comprend quinze différents contrôles que vous pouvez utiliser la commande. Cette section contient plusieurs exemples qui utilisent ces contrôles par programme.

Remarque Le code VBA qui est inclus dans cet article ne contient pas d'exemples qui affectent toutes les propriétés et événements pour les contrôles. Si c'est nécéssaire, vous pouvez utiliser la fenêtre Propriétés pour afficher la liste des propriétés disponibles pour un contrôle. Pour afficher la liste des propriétés, dans la
Menu affichage , cliquez sur Fenêtre Propriétés.

Comment faire pour utiliser le mode Création pour modifier des contrôles

Lorsque vous utilisez l’éditeur de Visual Basic pour créer une boîte de dialogue, vous utilisez le mode Création. En mode Création, vous pouvez modifier des contrôles, et vous pouvez modifier les propriétés d’un contrôle sur un formulaire utilisateur dans la fenêtre Propriétés. Pour afficher la fenêtre Propriétés, dans le menu affichage , cliquez sur
Fenêtre Propriétés.

Remarque Les contrôles ne répondent pas aux événements alors que vous êtes en mode Création. Lorsque vous exécutez une boîte de dialogue pour l'afficher comme les utilisateurs la verront, le programme est en cours d'exécution. Les modifications que vous apportez aux propriétés d’un contrôle en mode d’exécution ne sont pas conservées lorsque l’objet UserForm est déchargé de la mémoire.

Remarque Des contrôles en réponse à des événements en cours d’exécution.

Comment faire référence aux contrôles dans un UserForm

Manière de faire référence à des contrôles par programme dépend du type de la feuille de module Visual Basic lorsque vous exécutez le code. Si le code est exécuté à partir d’un module en général, la syntaxe est la suivante :
UserFormName.Controlname.Property = valeur
Par exemple, si vous souhaitez définir la propriété Text d’un contrôle TextBox nommé TextBox1 sur un objet UserForm nommé UserForm1 à celle de Bob, utilisez le code suivant :
UserForm1.TextBox1.Text = "Bob"
Si le code est dans une procédure qui est lancée par un événement d’un contrôle ou l’objet UserForm, vous n’avez pas à faire référence au nom de l’objet UserForm. Au lieu de cela, utilisez le code suivant :
TextBox1.Text = "Bob"
Lorsque vous associez un code à un objet, le code est associé à l’un des événements de cet objet. Dans la plupart des exemples dans cet article, vous attachez du code pour l’événement Click de l’objet du contrôle CommandButton .

Contrôles Label

Contrôles Label sont principalement utilisés pour décrire d’autres contrôles sur un formulaire utilisateur. Un contrôle Label ne peut pas être modifié par l’utilisateur pendant l’exécution de l’objet UserForm. Utilisez la propriété Caption pour définir ou renvoyer le texte dans un contrôle Label . D’autres propriétés fréquemment utilisées pour la mise en forme d’un contrôle Label : la propriété de police et de la propriété ForeColor .

Comment faire pour utiliser une instruction WITH pour mettre en forme un contrôle Label

Pour utiliser l’instruction WITH pour modifier les propriétés d’un contrôle Label , procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  4. Ajoutez un contrôle Label à l’objet UserForm.
  5. Ajoutez un contrôle CommandButton sur l’objet UserForm.
  6. Double-cliquez sur le contrôle CommandButton pour ouvrir la fenêtre Code pour l’objet UserForm.
  7. Dans la fenêtre Code, tapez le code suivant pour l’événement Click du contrôle CommandButton1 :
    Private Sub CommandButton1_Click()
    With Label1
    ' Set the text of the label.
    .Caption = "This is Label Example 1"
    ' Automatically size the label control.
    .AutoSize = True
    .WordWrap = False
    ' Set the font used by the Label control.
    .Font.Name = "Times New Roman"
    .Font.Size = 14
    .Font.Bold = True
    ' Set the font color to blue.
    .ForeColor = RGB(0, 0, 255)
    End With

    End Sub
  8. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.
  9. Cliquez sur le bouton de commande.
Le texte « Ceci est l’exemple étiquette 1 » s’affiche sur le contrôle d’étiquette en gras Times New Roman d’une taille de police de 14.

Contrôles de zone de texte

Contrôles TextBox sont souvent utilisés pour collecter les entrées d’un utilisateur. La propriété Text contient l’entrée effectuée dans un contrôle TextBox .

Comment utiliser un contrôle TextBox à valider un mot de passe

Si vous définissez la propriété PasswordChar d’un contrôle de zone de texte , il devient un contrôle « masque de modification ». Chaque caractère est tapé dans le contrôle TextBox est remplacé visuellement par le caractère que vous spécifiez. Pour utiliser un contrôle TextBox à valider un mot de passe, procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  4. Ajoutez un contrôle TextBox à l’objet UserForm.
  5. Dans le menu affichage , cliquez sur
    Propriétés pour afficher la fenêtre Propriétés.
  6. Dans la propriété PasswordChar du contrôle TextBox , tapez *.

    Remarque Vous modifiez la valeur d’un astérisque.
  7. Ajoutez un contrôle CommandButton sur l’objet UserForm.
  8. Double-cliquez sur le contrôle CommandButton pour ouvrir la fenêtre Code pour l’objet UserForm.
  9. Dans la fenêtre Code, tapez le code suivant pour l’événement Click du contrôle CommandButton1 :
    Private Sub CommandButton1_Click()
    If TextBox1.Text <> "userform" Then
    MsgBox "Password is Incorrect. Please reenter."
    TextBox1.Text = ""
    TextBox1.SetFocus
    Else
    MsgBox "Welcome!"
    Unload Me
    End If

    End Sub


  10. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.
  11. Tapez mot de passe userform dans le contrôle TextBox .
  12. Cliquez sur le contrôle CommandButton.
Pour cet exemple, le mot de passe est « objet userform ». Si vous tapez un mot de passe, vous recevez une boîte de message indiquant que votre mot de passe est incorrect, le contrôle TextBox est désactivé, et vous pouvez puis retapez le mot de passe. Lorsque vous tapez un mot de passe correct, vous recevez un message d’accueil, et l’objet UserForm est fermé.

Pour plus d’informations, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
213555 XL2000 : propriété de Validation de données N° de UserForm TextBoxes

Contrôles CommandButton

Vous pouvez utiliser un contrôle CommandButton pour démarrer une procédure VBA. La procédure VBA est généralement associée à l’événement Click du contrôle CommandButton . Pour utiliser un contrôle de bouton de commande qui exécute une procédure lorsque l’événement Click se produit, procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  4. Ajoutez un contrôle CommandButton sur l’objet UserForm.
  5. Double-cliquez sur le contrôle CommandButton pour afficher la fenêtre Code pour l’objet UserForm.
  6. Dans la fenêtre Code, tapez le code suivant :
    Private Sub CommandButton1_Click()
    red = Int(Rnd * 255)
    green = Int(Rnd * 255)
    blue = Int(Rnd * 255)
    CommandButton1.BackColor = RGB(red, green, blue)

    End Sub
  7. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.
La couleur d’arrière-plan du contrôle CommandButton1 change chaque fois que vous cliquez dessus.

Pour plus d’informations sur le contrôle CommandButton, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :
213572 XL2000 : bouton en cliquant sur Annuler ne peut pas faire disparaître UserForm

213743 XL2000 : comment définir le bouton de commande par défaut sur un formulaire utilisateur

Contrôles ListBox

L’objectif du contrôle ListBox est à présenter à l’utilisateur une liste d’éléments à sélectionner à partir de. Vous pouvez stocker la liste d’éléments d’un contrôle de zone de liste sur une feuille de calcul Excel. Pour remplir un contrôle ListBox avec une plage de cellules dans une feuille de calcul, utilisez la propriété contenu (RowSource) . Lorsque vous utilisez la propriété MultiSelect , vous pouvez configurer un contrôle ListBox pour accepter plusieurs sélections.

Comment faire pour obtenir l’élément actuellement sélectionné dans le contrôle ListBox

Utilisez la propriété Value d’un contrôle ListBox pour renvoyer l’élément actuellement sélectionné. Pour renvoyer l’élément actuellement sélectionné dans une contrôle de zone de liste de sélection unique, procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans les cellules a1 : a5 de la feuille Sheet1, tapez les valeurs que vous souhaitez utiliser pour remplir le contrôle ListBox .
  3. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  4. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  5. Ajoutez un contrôle ListBox à l’objet UserForm.
  6. Double-cliquez sur le contrôle ListBox pour afficher la fenêtre de Code pour le contrôle ListBox .
  7. Dans la fenêtre Code, tapez le code suivant pour l’événement Click de ListBox1 :
    Private Sub ListBox1_Click()
    MsgBox ListBox1.Value

    End Sub
  8. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.
Lorsque vous cliquez sur un élément dans la liste, un message s’affiche avec l’élément actuellement sélectionné.

Comment obtenir les éléments sélectionnés dans un contrôle de zone de liste Sélectionner plusieurs

Pour déterminer les éléments sélectionnés dans une contrôle de zone de liste de sélection multiple, vous devez exécuter une boucle sur tous les éléments dans la liste et ensuite interroger la propriété Selected . Pour retourner les éléments actuellement sélectionnés dans une contrôle ListBox , sélectionnez plusieurs, procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans les cellules a1 : a5 de la feuille Sheet1, tapez les valeurs que vous souhaitez utiliser pour remplir le contrôle ListBox .
  3. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  4. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  5. Ajoutez un contrôle ListBox à l’objet UserForm.
  6. Dans le menu affichage , cliquez sur
    Propriétés pour afficher la fenêtre Propriétés.
  7. Tapez les valeurs indiquées pour les propriétés suivantes du contrôle ListBox :
       Property   Value   -----------     -----------------------
    MultiSelect 1 - frmMultiSelectMulti
    RowSource Sheet1!A1:A8
  8. Ajoutez un contrôle CommandButton sur l’objet UserForm.
  9. Double-cliquez sur le contrôle CommandButton pour afficher la fenêtre Code pour l’objet UserForm.
  10. Dans la fenêtre Code, tapez le code suivant pour l’événement Click du contrôle CommandButton1 :
    Sub CommandButton1_Click ()
    ' Loop through the items in the ListBox.
    For x = 0 to ListBox1.ListCount - 1

    ' If the item is selected...
    If ListBox1.Selected(x) = True Then

    ' display the Selected item.
    MsgBox ListBox1.List(x)
    End If
    Next x

    End Sub
  11. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.
  12. Sélectionnez un ou plusieurs éléments dans la liste.
  13. Cliquez sur le contrôle CommandButton1.
Une fois que vous cliquez sur le contrôle CommandButton1, chaque élément que vous avez sélectionné dans le contrôle de zone de liste s’affiche dans un message séparé. Une fois que tous les éléments sélectionnés s’affichent dans une boîte de message, l’objet UserForm est automatiquement fermé.

Comment utiliser la propriété RowSource pour remplir un contrôle ListBox avec des cellules dans une feuille de calcul

Pour remplir un contrôle ListBox à partir d’une plage de cellules dans une feuille de calcul à l’aide de la propriété contenu (RowSource) , procédez comme suit :

  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans les cellules a1 : a5 de la feuille Sheet1, tapez les valeurs que vous souhaitez utiliser pour remplir le contrôle ListBox .
  3. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  4. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  5. Ajoutez un contrôle ListBox à l’objet UserForm.
  6. Ajoutez un contrôle CommandButton sur l’objet UserForm.
  7. Double-cliquez sur le contrôle CommandButton pour afficher la fenêtre Code pour l’objet UserForm.
  8. Dans la fenêtre Code, tapez le code suivant pour l’événement Click du contrôle CommandButton1 :
    Private Sub CommandButton1_Click()    ListBox1.RowSource = "=Sheet1!A1:A5"
    End Sub
  9. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.

    Remarque ListBox1 ne contient pas de valeurs.
  10. Cliquez sur le contrôle CommandButton1.
ListBox1 est rempli avec les valeurs dans les cellules a1 : a5 de la feuille Sheet1.

Comment faire pour remplir un contrôle ListBox avec les valeurs dans un tableau

Cet exemple vous montre comment remplir un contrôle ListBox avec une variable de tableau. Vous devez affecter les valeurs du tableau pour l’élément contrôle ListBox à la fois. En général, ce processus requiert l’utilisation d’une structure en boucle, comme un pour... Suivant boucle. Pour remplir un contrôle ListBox avec une variable de tableau, procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  4. Ajoutez un contrôle ListBox à l’objet UserForm.
  5. Dans le menu Insertion , cliquez sur
    Module pour insérer une feuille de module.
  6. Dans la fenêtre Code, tapez le code suivant :
    Sub PopulateListBox()
    Dim MyArray As Variant
    Dim Ctr As Integer
    MyArray = Array("Apples", "Oranges", "Peaches", "Bananas", "Pineapples")

    For Ctr = LBound(MyArray) To UBound(MyArray)
    UserForm1.ListBox1.AddItem MyArray(Ctr)
    Next

    UserForm1.Show

    End Sub
  7. Dans le menu Outils , cliquez sur
    Macros, cliquez sur PopulateListBox, puis cliquez sur
    Exécuter.
La procédure PopulateListBox génère un tableau simple et puis ajoute les éléments dans le tableau au contrôle ListBox à l’aide de la méthode AddItem . Ensuite, l’objet UserForm s’affiche.

Comment faire pour utiliser une plage de cellules horizontale sur une feuille de calcul pour remplir un contrôle ListBox

Si vous définissez la propriété contenu (RowSource) d’un contrôle ListBox à une plage de cellules horizontale, uniquement la première valeur s’affiche dans le contrôle ListBox .

Pour remplir un contrôle ListBox à partir d’une plage horizontale de cellules à l’aide de la méthode AddItem , procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans les cellules a1 à E1 de la feuille Sheet1, tapez les valeurs que vous souhaitez utiliser pour remplir le contrôle ListBox .
  3. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  4. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  5. Ajoutez un contrôle ListBox à l’objet UserForm.
  6. Dans le menu Insertion , cliquez sur
    Module pour insérer une feuille de module.
  7. Dans la fenêtre Code, tapez le code suivant :
    Sub PopulateListWithHorizontalRange()
    For Each x In Sheet1.Range("A1:E1")
    UserForm1.ListBox1.AddItem x.Value
    Next

    UserForm1.Show

    End Sub
  8. Dans le menu Outils , cliquez sur
    Macros, cliquez sur
    PopulateListWithHorizontalRange, puis cliquez sur
    Exécuter.
La procédure de macro boucle sur les cellules a1 : E5 dans la feuille Sheet1, ajoutez les valeurs à ListBox1 une à la fois.

Remarque ListBox1 n’est pas lié aux cellules a1 : E5 dans la feuille Sheet1.

Comment faire pour retourner plusieurs valeurs à partir d’un contrôle de zone de liste qui est lié à plusieurs colonnes de données

Vous pouvez mettre en forme les contrôles de zone de liste pour afficher plus d’une colonne de données. Cela signifie que le contrôle ListBox affiche plus d’un élément sur chaque ligne de la liste. Pour retourner plusieurs valeurs à partir de l’élément sélectionné dans la liste, procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Tapez les données suivantes dans les cellules qui sont indiqués dans la feuille Sheet1 :

    A1 : annéeB1 : régionC1 : ventes
    A2 : 1996B2 : nordC2 : 140
    A3 : 1996B3 : sudC3 : 210
    A4 : 1997B4 : nordC4 : 190
    A5 : 1997B5 : sudC5 : 195
  3. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  4. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  5. Ajoutez un contrôle Label à l’objet UserForm.
  6. Ajoutez un contrôle ListBox à l’objet UserForm.
  7. Avec le bouton droit de la zone de liste, puis cliquez sur
    Propriétés.
  8. Tapez ou sélectionnez les valeurs qui sont indiquées pour les propriétés suivantes du contrôle ListBox , comme répertoriés dans le tableau suivant :
       Property       Value   ----------------------------
    BoundColumn 1
    ColumnCount 3
    ColumnHeads True
    RowSource Sheet1!A2:A5
  9. Double-cliquez sur le contrôle ListBox pour afficher la fenêtre de Code pour le contrôle ListBox .
  10. Dans la fenêtre Code, tapez le code suivant :
    Private Sub ListBox1_Change()
    Dim SourceData As Range
    Dim Val1 As String, Val2 As String, Val3 As String

    Set SourceRange = Range(ListBox1.RowSource)

    Val1 = ListBox1.Value
    Val2 = SourceRange.Offset(ListBox1.ListIndex, 1).Resize(1, 1).Value
    Val3 = SourceRange.Offset(ListBox1.ListIndex, 2).Resize(1, 1).Value

    Label1.Caption = Val1 & " " & Val2 & " " & Val3

    End Sub
  11. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.
Lorsque vous cliquez sur une entrée dans le contrôle ListBox , l’étiquette change pour afficher les trois éléments dans cette entrée.

Comment faire pour supprimer tous les éléments d’un contrôle de zone de liste qui est lié à une feuille de calcul

Pour supprimer tous les éléments d’un contrôle de zone de liste qui est lié à une feuille de calcul, effacez la valeur qui est stockée dans la propriété contenu (RowSource) . Pour supprimer des éléments d’un contrôle de zone de liste qui est lié à une feuille de calcul, procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans les cellules a1 : a5 de la feuille Sheet1, tapez les valeurs que vous souhaitez utiliser pour remplir le contrôle ListBox .
  3. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  4. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  5. Ajoutez un contrôle ListBox à l’objet UserForm.
  6. Cliquez sur le contrôle zone de liste , puis cliquez sur Propriétés.
  7. Dans la propriété contenu (RowSource) , tapez la feuille Sheet1 ! A1 : a5.
  8. Ajoutez un contrôle CommandButton sur l’objet UserForm.
  9. Double-cliquez sur le contrôle CommandButton pour afficher la fenêtre de Code du contrôle CommandButton .
  10. Dans la fenêtre Code, tapez le code suivant pour l’événement Click du contrôle CommandButton1 :
    Private Sub CommandButton1_Click()
    ListBox1.RowSource = ""

    End Sub
  11. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.

    Le contrôle de zone de listeque vous avez ajouté à l’objet UserForm est rempli avec les valeurs que vous avez entré dans la feuille Sheet1.
  12. Cliquez sur le contrôle CommandButton1.
Tous les éléments sont supprimés de ListBox1.

Comment faire pour supprimer tous les éléments d’un contrôle ListBox qui n’est pas lié à une feuille de calcul

Il n’y a pas de commande VBA simple qui supprime tous les éléments d’un contrôle de zone de liste si la liste n’est pas liée à une feuille de calcul. Pour supprimer tous les éléments d’un contrôle ListBox qui est rempli à partir d’un tableau Visual Basic, procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  4. Ajoutez un contrôle ListBox à l’objet UserForm.
  5. Dans le menu Insertion , cliquez sur
    Module pour insérer une feuille de module.
  6. Dans la fenêtre Code, tapez le code suivant :
    Sub PopulateListBox()
    Dim MyArray As Variant
    Dim Ctr As Integer
    MyArray = Array("Apples", "Oranges", "Peaches", "Bananas", "Pineapples")

    For Ctr = LBound(MyArray) To UBound(MyArray)
    UserForm1.ListBox1.AddItem MyArray(Ctr)
    Next

    UserForm1.Show

    End Sub
  7. Ajoutez un contrôle CommandButton sur l’objet UserForm.
  8. Double-cliquez sur le contrôle CommandButton pour afficher la fenêtre de Code du contrôle CommandButton .
  9. Dans la fenêtre Code, tapez le code suivant pour l’événement Click du contrôle CommandButton1 :
    Private Sub CommandButton1_Click()
    For i = 1 To ListBox1.ListCount
    ListBox1.RemoveItem 0
    Next I

    End Sub
  10. Dans le menu Outils , cliquez sur
    Macros, cliquez sur PopulateListBox, puis cliquez sur
    Exécuter.

    Le contrôle ListBox est rempli, et l’objet UserForm s’affiche alors.
  11. Cliquez sur le contrôle CommandButton1.
Tous les éléments sont supprimés de ListBox1.

Pour plus d’informations sur le contrôle zone de liste, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :
161598 OFF : comment faire pour ajouter des données à un contrôle ComboBox ou d’une zone de liste dans Excel ou Word

211446 XL2000 : propriété TextColumn affiche uniquement la première colonne

211896 XL2000 : comment faire pour simuler la combinaison-modifier votre liste de contrôle pour les formulaires utilisateur

211899 XL2000 : problèmes affectant des en-têtes de colonne dans le contrôle ListBox

213721 XL2000 : comment faire pour supprimer tous les éléments dans un ListBox ou un ComboBox

213722 XL2000 : comment faire pour utiliser la propriété TextColumn

213723 XL2000 : comment retourner des valeurs à partir d’une liste de zone qui affiche plusieurs colonnes

213746 XL2000 : comment remplir un contrôle de zone de liste avec plusieurs plages

213748 XL2000 : comment faire pour remplir une zone de liste basée sur une autre zone de liste

213752 XL2000 : à l’aide de la méthode AddItem provoque une erreur lorsque le contenu est lié aux données

213756 XL2000 : à l’aide de la méthode RemoveItem avec contrôle ListBox ou ComboBox

213759 XL2000 : comment faire pour déterminer les éléments sélectionnés dans une zone de liste

Contrôles ComboBox

Vous pouvez utiliser le contrôle de zone de liste déroulante sous la forme d’une zone de liste déroulante ou une zone de liste déroulante dans laquelle vous pouvez sélectionner une valeur dans une liste ou taper une nouvelle valeur. La propriété Style détermine si le contrôle ComboBox se comporte comme une zone de liste déroulante ou une zone de liste déroulante.

Remarque Tous les exemples dans la section précédente pour le contrôle ListBox peuvent également être appliqués sur le contrôle ComboBox , à l’exception de l’exemple « Comment obtenir les éléments sélectionnés dans une contrôle ListBox, sélectionnez plusieurs ».

Comment faire pour ajouter un nouvel élément à la liste si le contrôle de zone de liste déroulante n’est pas lié à une feuille de calcul

Lorsque vous tapez une valeur qui n’est pas déjà dans la liste dans le contrôle ComboBox , vous souhaiterez peut-être ajouter la nouvelle valeur à la liste. Pour ajouter la nouvelle valeur que vous avez tapé dans le contrôle de zone de liste déroulante si le contrôle de zone de liste déroulante n’est pas lié à la feuille de calcul, procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  4. Ajoutez un contrôle ComboBox à l’objet UserForm.
  5. Dans le menu Insertion , cliquez sur
    Module pour insérer une feuille de module.
  6. Dans la fenêtre Code, tapez le code suivant :
    Sub PopulateComboBox()
    Dim MyArray As Variant
    Dim Ctr As Integer
    MyArray = Array("Apples", "Oranges", "Peaches", "Bananas", "Pineapples")

    For Ctr = LBound(MyArray) To Ubound(MyArray)
    UserForm1.ComboBox1.AddItem MyArray(Ctr)
    Next

    UserForm1.Show

    End Sub
  7. Ajoutez un contrôle CommandButton sur l’objet UserForm.
  8. Double-cliquez sur le contrôle CommandButton pour afficher la fenêtre de Code du contrôle CommandButton .
  9. Dans la fenêtre Code, tapez le code suivant pour l’événement Click du contrôle CommandButton1 :
    Private Sub CommandButton1_Click()
    Dim listvar As Variant

    listvar = ComboBox1.List

    On Error Resume Next
    ' If the item is not found in the list...
    If IsError(WorksheetFunction.Match(ComboBox1.Value, listvar, 0)) Then
    ' add the new value to the list.
    ComboBox1.AddItem ComboBox1.Value
    End If

    End Sub
  10. Dans le menu Outils , cliquez sur
    Macros, cliquez sur PopulateListBox, puis cliquez sur
    Exécuter.

    Le contrôle de zone de liste déroulante est rempli, et l’objet UserForm s’affiche alors.
  11. Dans le contrôle zone de liste déroulante , tapez mangues (ou toute valeur qui n’est pas déjà dans la liste).
  12. Cliquez sur le contrôle CommandButton1.
La nouvelle valeur que vous avez tapé maintenant apparaît à la fin de la liste.

Comment faire pour ajouter un nouvel élément à la liste si le contrôle de zone de liste déroulante est lié à une feuille de calcul

Lorsqu’un utilisateur tape une valeur qui n’est pas déjà dans la liste dans le contrôle ComboBox , vous souhaiterez peut-être ajouter la nouvelle valeur à la liste. Pour ajouter la nouvelle valeur que vous avez tapé dans le contrôle ComboBox à la liste, procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans les cellules a1 : a5 de la feuille Sheet1, tapez les valeurs que vous souhaitez utiliser pour remplir le contrôle zone de liste déroulante .
  3. Sélectionnez les cellules a1 : a5 de la feuille Sheet1.
  4. Dans le menu Insertion , pointez sur
    Nom, puis cliquez sur définir.

    Dans le
    Zone de noms dans le classeur , tapez ListRange , puis cliquez sur OK. Cette opération crée le nom défini ListRange. Vous pouvez utiliser le nom défini ListRange pour lier la propriété contenu (RowSource) du contrôle ComboBox à la feuille de calcul.
  5. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  6. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  7. Ajoutez un contrôle ComboBox à l’objet UserForm.
  8. Dans les Propriétés de ComboBox1, tapez la feuille Sheet1 ! ListRange comme le
    Propriété de contenu (RowSource) .
  9. Ajoutez un contrôle CommandButton sur l’objet UserForm.
  10. Double-cliquez sur le contrôle CommandButton pour afficher la fenêtre de Code du contrôle CommandButton .
  11. Dans la fenêtre Code, tapez le code suivant pour l’événement Click du contrôle CommandButton1 :
    Private Sub CommandButton1_Click()
    Dim SourceData As Range
    Dim found As Object

    Set SourceData = Range("ListRange")
    Set found = Nothing
    ' Try to find the value on the worksheet.
    Set found = SourceData.Find(ComboBox1.Value)

    ' If the item is not found in the list...
    If found Is Nothing Then
    ' redefine ListRange.
    SourceData.Resize(SourceData.Rows.Count + 1, 1).Name = "ListRange"
    ' Add the new item to the end of the list on the worksheet.
    SourceData.Offset(SourceData.Rows.Count, 0).Resize(1, 1).Value _
    = ComboBox1.Value
    ' Reset the list displayed in the ComboBox.
    ComboBox1.RowSource = Range("listrange").Address(external:=True)
    End If

    End Sub
  12. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.

    L’objet UserForm s’affiche dans la feuille Sheet1.
  13. Dans le contrôle zone de liste déroulante , tapez une valeur qui n’est pas déjà dans la liste.
  14. Cliquez sur le contrôle CommandButton1.
Le nouvel élément que vous avez tapé dans le contrôle ComboBox est ajouté à la liste, et que le contrôle de zone de liste déroulante est lié à la liste est étendue pour inclure les cellules a1 : a6.

Comment faire pour afficher la liste d’un contrôle de zone de liste déroulante lorsque l’objet UserForm s’affiche.

Parfois, il peut être utile d’afficher la liste d’un contrôle ComboBox , apparition d’un objet UserForm. L’exemple suivant utilise l’événement Activate de l’objet UserForm. Pour afficher la liste d’un contrôle ComboBox , procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans les cellules a1 : a5 de la feuille Sheet1, tapez les valeurs que vous souhaitez utiliser pour remplir le contrôle zone de liste déroulante .
  3. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  4. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  5. Ajoutez un contrôle ComboBox à l’objet UserForm.
  6. Dans les Propriétés de ComboBox1, tapez la feuille Sheet1 ! A1 : a5 comme le
    Propriété de contenu (RowSource) .
  7. Double-cliquez sur l' objet UserForm pour afficher la fenêtre Code pour l’objet UserForm.
  8. Dans la fenêtre Code, tapez le code suivant pour l’événement Click du bouton de commande :
    Private Sub UserForm_Activate()
    ComboBox1.DropDown

    End Sub
  9. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.
L’objet UserForm s’affiche dans la feuille Sheet1, et vous pouvez voir la liste de ComboBox1.

Comment faire pour afficher la liste d’un contrôle de zone de liste déroulante lorsque vous effectuez une sélection dans un autre contrôle ComboBox

Pour afficher automatiquement la liste d’un contrôle de zone de liste déroulante lorsqu’un choix est effectué dans un autre contrôle de zone de liste déroulante , procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans les cellules a1 : a10 dans la feuille Sheet1, tapez les valeurs que vous souhaitez utiliser pour remplir le contrôle zone de liste déroulante .
  3. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  4. Dans le menu Insertion , cliquez sur
    Module.
  5. Dans la fenêtre Code du module, tapez le code suivant :
    Sub DropDown_ComboBox()
    UserForm1.ComboBox2.DropDown

    End Sub
  6. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  7. Ajoutez un contrôle ComboBox à l’objet UserForm.
  8. Dans les Propriétés de ComboBox1, tapez la feuille Sheet1 ! A1 : a5 comme le
    Propriété de contenu (RowSource) .
  9. Double-cliquez sur le contrôle ComboBox pour ouvrir la fenêtre de Code pour le contrôle ComboBox .
  10. Dans la fenêtre de Code pour le contrôle de zone de liste déroulante , tapez le code suivant pour l’événement Click du contrôle ComboBox :
    Private Sub ComboBox1_Click()
    Application.OnTime Now, "DropDown_ComboBox"

    End Sub
  11. Ajoutez un deuxième contrôle de zone de liste déroulante à l’objet UserForm.
  12. Dans les Propriétés ComboBox2, tapez la feuille Sheet1 ! A6:a10 comme le
    Propriété de contenu (RowSource) .
  13. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.
Lorsque vous cliquez sur un élément dans la liste ComboBox1 , la liste de ComboBox2 s’affiche automatiquement.

Pour plus d’informations sur le contrôle zone de liste déroulante, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :
161598 OFF : comment faire pour ajouter des données à un contrôle ComboBox ou d’une zone de liste dans Excel ou Word

211446 XL2000 : propriété TextColumn affiche uniquement la première colonne

211899 XL2000 : problèmes affectant des en-têtes de colonne dans le contrôle ListBox

213717 XL2000 : erreur d’exécution à l’aide de la méthode DropDown avec un contrôle ComboBox

213718 XL2000 : comment faire pour afficher une liste de zone de liste déroulante lorsqu’un objet UserForm est affiché

213721 XL2000 : comment faire pour supprimer tous les éléments dans un ListBox ou un ComboBox

213722 XL2000 : comment faire pour utiliser la propriété TextColumn

213752 XL2000 : à l’aide de la méthode AddItem provoque une erreur lorsque des données de contenu (RowSource) est liées

213756 XL2000 : à l’aide de la méthode RemoveItem avec contrôle ListBox ou ComboBox

Contrôle Frame

Utiliser un contrôle Frame pour regrouper des éléments logiquement associés dans un objet UserForm. Contrôles Frame sont fréquemment utilisés pour regrouper des contrôles OptionButton .

Comment effectuer une boucle sur tous les contrôles dans un contrôle Frame

Pour utiliser un pour chaque... Suivant boucle pour accéder à tous les contrôles dans un contrôle Frame , procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  4. Ajoutez un contrôle de cadre à l’objet UserForm.
  5. Ajouter un contrôle OptionButton dans le contrôle Frame .

    Répétez cette étape pour ajouter deux contrôles OptionButton plus dans le contrôle Frame .
  6. Double-cliquez sur le contrôle Frame pour ouvrir la fenêtre de Code pour le contrôle de l’image .
  7. Dans la fenêtre Code, tapez le code suivant pour l’événement Click de cadre :
    Private Sub Frame1_Click()
    Dim Ctrl As Control

    For Each Ctrl In Frame1.Controls
    Ctrl.Enabled = Not Ctrl.Enabled
    Next

    End Sub
  8. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.
  9. Dans l’objet UserForm, cliquez sur le contrôle Frame.
La première fois que vous cliquez sur le contrôle Frame , tous les contrôles dans le contrôle Frame ne sont pas disponibles. Si vous cliquez de nouveau sur le contrôle Frame , les contrôles sont à nouveau disponibles.

Contrôle OptionButton

Vous pouvez utiliser des groupes de contrôles OptionButton pour effectuer une sélection parmi un groupe d’options. Vous pouvez utiliser une ou l’autre des techniques suivantes pour regrouper des contrôles OptionButton :
  • Contrôle Frame
  • GroupName , propriété
Remarque La valeur sur la valeur Oui et la valeur True indiquent qu’un contrôle OptionButton est sélectionné. La valeur Off , la valeur No et la valeur False indiquent qu’un contrôle OptionButton n’est pas sélectionnée.

Comment faire pour déterminer le contrôle OptionButton est sélectionné lorsque les contrôles OptionButton sur un contrôle Frame

Lorsque vous regroupez des contrôles de boutons d’option à l’aide d’un contrôle Frame , vous pouvez déterminer le contrôle OptionButton est sélectionné en effectuant une boucle sur tous les contrôles dans le contrôle Frame et en vérifiant la valeur de propriété de chaque contrôle. Pour déterminer le contrôle OptionButton est sélectionné, procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  4. Ajoutez un contrôle de cadre à l’objet UserForm.
  5. Ajouter un contrôle OptionButton dans le contrôle Frame .

    Répétez cette étape pour ajouter deux contrôles OptionButton plus dans le contrôle Frame .
  6. Ajoutez un contrôle CommandButton sur l’objet UserForm à l’extérieur du cadre de contrôle.
  7. Double-cliquez sur le contrôle CommandButton pour afficher la fenêtre Code pour l’objet UserForm.
  8. Dans la fenêtre Code, tapez le code suivant pour l’événement Click du contrôle CommandButton1 :
    Private Sub CommandButton1_Click()
    For Each x In Frame1.Controls
    If x.Value = True Then
    MsgBox x.Caption
    End If
    Next

    End Sub
  9. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.
  10. Dans l' objet UserForm, cliquez sur un contrôle OptionButton , puis cliquez sur
    CommandButton1.
Une boîte de message s’affiche qui contient la légende du contrôle OptionButton actuellement sélectionné.

Comment faire pour déterminer le contrôle OptionButton est sélectionné

L’objectif de l’exemple suivant est de déterminer le contrôle OptionButton est sélectionné dans le groupe 1. Pour créer un UserForm qui a deux groupes de contrôles OptionButton , procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  4. Ajoutez un contrôle de cadre à l’objet UserForm.
  5. Ajouter un contrôle OptionButton dans le contrôle Frame .

    Répétez cette étape pour ajouter deux contrôles OptionButton plus dans le contrôle Frame .
  6. Pour chaque contrôle OptionButton , tapez Groupe1 dans la propriété GroupName .
  7. Répétez les étapes 4 et 5 pour créer un deuxième contrôle de cadre qui contient trois contrôles OptionButton .
  8. Pour chaque contrôle OptionButton dans le deuxième contrôle Frame , tapez groupe2 dans la propriété GroupName .
  9. Ajoutez un contrôle CommandButton sur l’objet UserForm à l’extérieur des contrôles Frame .
  10. Double-cliquez sur le contrôle CommandButton pour afficher la fenêtre Code pour l’objet UserForm.
  11. Dans la fenêtre Code, tapez le code suivant pour l’événement Click du contrôle CommandButton1 :
    Private Sub CommandButton1_Click()
    Dim x As Control

    ' Loop through ALL the controls on the UserForm.
    For Each x In Me.Controls
    ' Check to see if "Option" is in the Name of each control.
    If InStr(x.Name, "Option") Then
    ' Check Group name.
    If x.GroupName = "Group1" Then
    ' Check the status of the OptionButton.
    If x.Value = True Then
    MsgBox x.Caption
    Exit For
    End If
    End If
    End If
    Next

    End Sub
  12. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.
  13. Dans l’objet UserForm, cliquez sur un contrôle OptionButton dans Group1, puis cliquez sur
    CommandButton1.
Une boîte de message s’affiche qui contient la légende du contrôle OptionButton qui est actuellement sélectionné.

Pour plus d’informations sur les contrôles OptionButton, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
213724 XL2000 : problèmes à l’aide de la propriété TripleState pour la case d’option

Contrôle CheckBox

Vous pouvez utiliser un contrôle de case à cocher pour indiquer une valeur true ou false. Un contrôle de case à cocher qui apparaît avec une coche qu’il indique une valeur de
True. Une case à cocher qui apparaît sans coche indique la valeur False. Si la valeur de la propriété TripleState est True, un contrôle de case à cocher peut également avoir la valeur Null. Un contrôle de case à cocher qui a une valeur Null semble ne pas être disponibles.

Remarque La valeur sur la valeur Oui et la valeur True indiquent qu’un contrôle de case à cocher est activée. La valeur Off , la valeur No et la valeur False indiquent qu’un contrôle de case à cocher est désactivé.

Comment faire pour vérifier la valeur d’un contrôle de case à cocher

Pour utiliser la propriété Value pour renvoyer la valeur actuelle d’un contrôle de case à cocher , procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  4. Ajoutez un contrôle de case à cocher à l’objet UserForm.
  5. Dans la liste de propriétés pour CheckBox1, sélectionnez True la propriété TripleState .
  6. Double-cliquez sur le contrôle case à cocher pour afficher la fenêtre de Code du contrôle CheckBox .
  7. Dans la fenêtre Code, tapez le code suivant pour l’événement de Modification de CheckBox1 :
    Private Sub CheckBox1_Change()
    Select Case CheckBox1.Value
    Case True
    CheckBox1.Caption = "True"
    Case False
    CheckBox1.Caption = "False"
    Case Else
    CheckBox1.Caption = "Null"
    End Select

    End Sub
  8. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.
Lorsque vous cliquez sur le contrôle case à cocher , la légende du contrôle CheckBox change pour refléter la valeur actuelle.

ToggleButton, contrôle

Un contrôle ToggleButton a la même apparence qu’un contrôle de bouton de commande jusqu'à ce que vous cliquez dessus. Lorsque vous cliquez sur un contrôle ToggleButton , elle semble être enfoncée ou enclenchée. La propriété Value d’un contrôle ToggleButton est True lorsque le bouton est sélectionné et False lorsque le bouton n’est pas sélectionné. Si la valeur de la propriété TripleState est True, un contrôle ToggleButton peut également avoir la valeur Null. Un contrôle ToggleButton qui a une valeur Null semble ne pas être disponibles.

Remarque La valeur sur la valeur Oui et la valeur True indiquent qu’un contrôle ToggleButton est sélectionné. La valeur Off , la valeur No et la valeur False indiquent qu’un contrôle ToggleButton n’est pas sélectionné.

Comment faire pour obtenir la valeur d’un contrôle ToggleButton

Pour obtenir la valeur d’un contrôle ToggleButton , procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  4. Ajoutez un contrôle ToggleButton dans l’objet UserForm.
  5. Ajoutez un contrôle Label à l’objet UserForm.
  6. Double-cliquez sur le contrôle ToggleButton pour ouvrir la fenêtre de Code pour le contrôle ToggleButton .
  7. Dans la fenêtre Code, tapez le code suivant pour l’événement ToggleButton1Click :
    Private Sub ToggleButton1_Click()
    If ToggleButton1.Value = True Then
    ' Set UserForm background to Red.
    Me.BackColor = RGB(255, 0, 0)
    Else
    ' Set UserForm background to Blue.
    Me.BackColor = RGB(0, 0, 255)
    End If

    End Sub
  8. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.
Lorsque vous cliquez sur le contrôle ToggleButton , la couleur d’arrière-plan des modifications UserForm.

Comment faire pour créer un groupe de contrôles ToggleButton s’excluent

Cet exemple utilise l’événement MouseUp pour définir une variable et appelle la procédure ExclusiveToggleButtons . La procédure ExclusiveToggleButtons détermine le contrôle bouton bascule qui est sélectionné, puis annule les autres. Pour créer un groupe de contrôles ToggleButton s’excluent, procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Insertion , cliquez sur
    Module.
  4. Dans la fenêtre Code du module, tapez le code suivant :
    ' Variable that holds the name of the ToggleButton that was clicked.Public clicked As String

    Sub ExclusiveToggleButtons()

    Dim toggle As Control

    ' Loop through all the ToggleButtons on Frame1.
    For Each toggle In UserForm1.Frame1.Controls

    ' If Name of ToggleButton matches name of ToggleButton
    ' that was clicked...
    If toggle.Name = clicked Then
    '...select the button.
    toggle.Value = True
    Else
    '...otherwise clear the selection of the button.
    toggle.Value = False
    End If
    Next

    End Sub
  5. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  6. Ajoutez un contrôle de cadre à l’objet UserForm.
  7. Ajoutez un contrôle ToggleButton dans le contrôle Frame .

    Répétez cette étape pour ajouter deux autres contrôles ToggleButton dans le contrôle Frame .
  8. Double-cliquez sur le contrôle image pour afficher la fenêtre Code pour l’objet UserForm.
  9. Dans la fenêtre Code du module, tapez le code suivant pour l’événement MouseUp du contrôle ToggleButton :
    Private Sub ToggleButton1_MouseUp(ByVal Button As Integer, _              ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

    clicked = ToggleButton1.Name
    Application.OnTime Now, "ExclusiveToggleButtons"

    End Sub

    Private Sub ToggleButton2_MouseUp(ByVal Button As Integer, _
    ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

    clicked = ToggleButton2.Name
    Application.OnTime Now, "ExclusiveToggleButtons"

    End Sub

    Private Sub ToggleButton3_MouseUp(ByVal Button As Integer, _
    ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

    clicked = ToggleButton3.Name
    Application.OnTime Now, "ExclusiveToggleButtons"

    End Sub
  10. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.
Lorsque vous cliquez sur un contrôle ToggleButton , contrôle ToggleButton précédemment sélectionné est annulé.

Contrôle TabStrip

Utilisez un contrôle TabStrip pour visualiser différents ensembles d’informations d’un ensemble de contrôles.

Comment faire pour contrôler un contrôle TabStrip par programme

Pour modifier la propriété BackColor d’un contrôle d’Image en fonction de l’onglet est sélectionné, procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  4. Ajoutez un contrôle TabStrip à l’objet UserForm.
  5. Ajoutez un contrôle Image qui couvre la base du contrôle TabStrip , mais qui ne couvre pas les onglets.
  6. Dans le volet Propriétés Image1, tapez
    & H000000FF & de la propriété BackColor .
  7. Double-cliquez sur le contrôle TabStrip pour ouvrir la fenêtre Code pour le contrôle TabStrip .
  8. Dans la fenêtre Code, tapez le code suivant pour l’événement de Modification de TabStrip1 :
    Private Sub TabStrip1_Change()
    Dim i As Integer

    i = TabStrip1.SelectedItem.Index
    Select Case i
    Case 0
    ' If Tab1 is selected, change the color of Image control to Red.
    Image1.BackColor = RGB(255, 0, 0)
    Case 1
    ' If Tab2 is selected, change the color of Image control to Green.
    Image1.BackColor = RGB(0, 255, 0)
    End Select

    End Sub
  9. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.
La couleur du contrôle Image change en fonction de la page dans le contrôle TabStrip est actif.

Pour plus d’informations sur le contrôle TabStrip, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
213254 XL2000 : comment faire pour utiliser le contrôle TabStrip sur un objet UserForm

Contrôle multiPage

Utiliser un contrôle MultiPage pour travailler avec un grand nombre d’informations qui peuvent être triées en plusieurs catégories. Un contrôle MultiPage est constitué par une ou plusieurs Page objets chacun contient un ensemble différent de contrôles. Vous pouvez définir la page active par programme en définissant la propriété Value du contrôle MultiPage .

Comment des contrôles par programme un contrôle MultiPage

Pour ajouter un contrôle MultiPage et le contrôle à l’aide d’une macro, procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  4. Ajouter un contrôle MultiPage à l’objet UserForm.
  5. Ajoutez un contrôle Label à la page 1 sur le contrôle MultiPage .
  6. Ajoutez un contrôle de zone de texte « Page1 » sur le contrôle MultiPage .
  7. Sur le contrôle MultiPage , cliquez sur page 2et répétez les étapes 5 et 6 pour ajouter un contrôle Label et un contrôle TextBox .
  8. Double-cliquez sur le contrôle MultiPage pour ouvrir la fenêtre de Code du contrôle MultiPage .
  9. Dans la fenêtre Code, tapez le code suivant pour l’événement de Modification de MultiPage1 :
    Private Sub MultiPage1_Change()
    Select Case MultiPage1.Value
    ' If activating Page1...
    Case 0
    Label1.Caption = TextBox2.Text
    TextBox1.Text = ""
    ' If activating Page2...
    Case 1
    Label2.Caption = TextBox1.Text
    TextBox2.Text = ""
    End Select

    End Sub
  10. Dans la fenêtre Code, tapez le code suivant pour l’événement Initialize de l’objet UserForm :
    Private Sub UserForm_Initialize()
    ' Force Page1 to be active when UserForm is displayed.
    MultiPage1.Value = 0
    Label1.Caption = ""

    End Sub
  11. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.

    Dans le contrôle zone de texte sur la page 1, tapez Test. Lorsque vous cliquez sur l’onglet de la page 2 , TextBox2 est désactivée et la légende de Label2 change à l’entrée que vous avez apportées dans TextBox1 de la Page1 (« Test »).

Comment créer une interface d’Assistant à l’aide d’un contrôle MultiPage

Lorsqu’une tâche nécessite plusieurs étapes incrémentielles, une interface peut être très efficace. Le contrôle MultiPage vous permet de créer une interface d’Assistant au lieu d’utiliser plusieurs UserForms. Cet exemple montre comment manipule un contrôle MultiPage qui comporte trois pages. Une procédure qui est associée à la
Événement Initialize de l’objet UserForm désactive Page2 et Page3 et force Page1 du contrôle MultiPage soit active.

Remarque Lorsque vous indexez les pages d’un contrôle MultiPage à l’aide de la collection de Pages , la première page dans la collection est zéro. En outre, cette procédure définit la légende des contrôles CommandButton et désactive le < retour bouton.

Remarque La procédure qui est assignée à l’événement Click du contrôle CommandButton1 contrôle les fonctionnalités de la < retour bouton. La procédure qui est assignée à l’événement Click du contrôle CommandButton2, il contrôle les fonctionnalités de la suivante > bouton. Pour créer une interface d’Assistant à l’aide d’un contrôle MultiPage , procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  4. Ajouter un contrôle MultiPage à l’objet UserForm.
  5. Cliquez sur l’onglet de la page 1 , puis cliquez sur
    Nouvelle Page à ajouter Page3 au contrôle MultiPage .
  6. Ajoutez un contrôle CommandButton sur l’objet UserForm qui ne se trouve pas sur le contrôle MultiPage .

    Répétez cette étape pour ajouter un deuxième contrôle CommandButton sur l’objet UserForm.
  7. Double-cliquez sur formulaire utilisateur pour ouvrir la fenêtre Code pour l’objet UserForm.
  8. Dans la fenêtre Code, tapez le code suivant pour l’événement Initialize de l’objet UserForm :
    Private Sub UserForm_Initialize()
    With MultiPage1
    ' The next 2 lines disable Page2 & Page3.
    .Pages(1).Enabled = False
    .Pages(2).Enabled = False
    ' Make Page1 the active page.
    .Value = 0
    End With

    ' Set the caption on the CommandButtons.
    CommandButton1.Caption = "<Back"
    CommandButton1.Enabled = False
    CommandButton2.Caption = "Next>"

    End Sub

    ' Procedure for the "<Back" button
    Private Sub CommandButton1_Click()
    Select Case MultiPage1.Value
    Case 1 ' If Page2 is active...
    With MultiPage1
    .Pages(0).Enabled = True ' Enable Page1.
    .Value = MultiPage1.Value - 1 ' Move back 1 page.
    .Pages(1).Enabled = False ' Disable Page2.
    End With
    CommandButton1.Enabled = False ' Disable Back button.

    Case 2 ' If Page3 is active...
    With MultiPage1
    .Pages(1).Enabled = True ' Enable Page2.
    .Value = MultiPage1.Value - 1 ' Move back 1 page.
    .Pages(2).Enabled = False ' Disable Page3.
    CommandButton2.Caption = "Next>"
    End With
    End Select

    End Sub

    ' Procedure for the "Next>" button
    Private Sub CommandButton2_Click()

    Select Case MultiPage1.Value
    Case 0 ' If Page1 is active...
    With MultiPage1
    .Value = MultiPage1.Value + 1 ' Move forward 1 page.
    .Pages(1).Enabled = True ' Enable Page2.
    .Pages(0).Enabled = False ' Disable Page1.
    End With
    CommandButton1.Enabled = True ' Enable Back button.

    Case 1 ' If Page2 is active...
    With MultiPage1
    .Value = MultiPage1.Value + 1 ' Move forward 1 page.
    .Pages(2).Enabled = True ' Enable Page3.
    .Pages(1).Enabled = False ' Disable Page2.
    End With
    CommandButton2.Caption = "Finish" ' Change Next button to Finish.

    Case 2 ' If Page3 is active...
    MsgBox "Finished!" ' User is Finished.
    Unload Me ' Unload the UserForm.
    End Select

    End Sub

  9. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.
Lorsque vous cliquez sur Suivant >, Page2 est activé et le < retour bouton devient disponible. Lorsque vous cliquez sur
Suivant > une seconde fois, Page3 est activé et la légende
CommandButton2 devient « Terminer ».

Contrôle de barre de défilement

Vous pouvez utiliser un contrôle de barre de défilement lorsque vous souhaitez modifier la valeur affichée par un autre contrôle, tel qu’un contrôle d’étiquette .

Comment faire pour modifier un contrôle Label qui est basé sur la valeur d’un contrôle de barre de défilement

Pour modifier la propriété Caption d’un contrôle Label à la valeur actuelle de la propriété Value d’un contrôle de barre de défilement , procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  4. Ajoutez un contrôle de barre de défilement à l’objet UserForm.
  5. Ajoutez un contrôle Label à l’objet UserForm.
  6. Double-cliquez sur le contrôle de barre de défilement pour ouvrir la fenêtre de Code pour le contrôle de barre de défilement .
  7. Dans la fenêtre Code, tapez le code suivant pour l’événement de Modification de ScrollBar1 :
    Private Sub ScrollBar1_Change()
    Label1.Caption = ScrollBar1.Value

    End Sub
  8. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.
Lorsque vous faites défiler à l’aide du contrôle de barre de défilement , Label1 est mis à jour avec la valeur actuelle du contrôle de barre de défilement .

SpinButton, contrôle

Un contrôle SpinButton , comme un contrôle de barre de défilement , est fréquemment utilisé pour incrémenter ou décrémenter la valeur d’un autre contrôle, tel qu’un contrôle d’étiquette . La propriété SmallChange détermine de combien la valeur d’un contrôle SpinButton change lorsqu’il est sélectionné.

Comment faire pour ajouter un contrôle SpinButton qui incrémente ou décrémente une date qui est stocké dans un contrôle TextBox

Pour ajouter un contrôle SpinButton qui incrémente ou décrémente une date qui est stocké dans un contrôle de zone de texte , procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  4. Ajouter un contrôle SpinButton pour l’objet UserForm.
  5. Ajoutez un contrôle TextBox à l’objet UserForm.
  6. Double-cliquez sur le contrôle SpinButton pour ouvrir la fenêtre Code pour le contrôle SpinButton .
  7. Dans la fenêtre Code, tapez le code suivant pour l’événement SpinUp de SpinButton1 :
    Private Sub SpinButton1_SpinUp()
    TextBox1.Text = DateValue(TextBox1.Text) + 1

    End Sub

  8. Dans la fenêtre Code, tapez le code suivant pour l’événement SpinDown décrémente la SpinButton1 :
    Private Sub SpinButton1_SpinDown()
    TextBox1.Text = DateValue(TextBox1.Text) - 1

    End Sub

  9. Dans la fenêtre Code, tapez le code suivant pour l’événement Initialize de l’objet UserForm :
    Private Sub UserForm_Initialize()
    TextBox1.Text = Date

    End Sub

  10. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.
Lorsque l’objet UserForm s’affiche, la date du jour s’affiche dans TextBox1. Lorsque vous cliquez sur le contrôle SpinButton , la date est incrémentée ou décrémentée par un jour.

Dans cet exemple, si vous modifiez la propriété SmallChange de SpinButton1, vous n’affectez pas le nombre de jours de que l’entrée dans TextBox1 est modifiée par lorsque vous cliquez sur SpinButton1. Le nombre de jours est déterminé uniquement par la procédure que vous avez associé à l’événement SpinUp et l’événement SpinDown décrémente de SpinButton1.

Pour plus d’informations sur le contrôle SpinButton, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
213224 XL2000 : exemple de Visual Basic à l’aide d’un bouton de rotation avec une date

Contrôle RefEdit

Le contrôle RefEdit imite le comportement des boîtes de référence qui sont intégrées dans Excel. Vous pouvez utiliser la propriété Value pour obtenir l’adresse de la cellule en cours qui sont stockés dans un contrôle RefEdit .

Comment faire pour remplir une plage de cellules en fonction de la plage que vous sélectionnez à l’aide du contrôle RefEdit

Pour utiliser le contrôle RefEdit pour remplir les cellules, procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  4. Ajoutez un contrôle RefEdit pour l’objet UserForm.
  5. Ajoutez un contrôle CommandButton sur l’objet UserForm.
  6. Double-cliquez sur le contrôle CommandButton pour ouvrir la fenêtre de Code du contrôle CommandButton .
  7. Dans la fenêtre Code, tapez le code suivant pour l’événement Click du contrôle CommandButton1 :
    Private Sub CommandButton1_Click()
    Dim MyRange As String
    MyRange = RefEdit1.Value
    Range(MyRange).Value = "test"
    Unload Me

    End Sub
  8. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.

    Le UserFormappears.
  9. Cliquez sur le bouton dans le contrôle RefEdit .

    Notez que le UserForm est réduit.
  10. Sélectionnez une plage de cellules comme a1 : a5, puis cliquez sur le bouton dans le contrôle RefEdit pour développer l’objet UserForm.
  11. Cliquez sur le contrôle CommandButton1.
L’objet UserForm se ferme et les cellules que vous avez sélectionnés contiennent à présent le mot « test ».

Pour plus d’informations sur le contrôle RefEdit, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
213776 XL2000 : comment faire pour utiliser le contrôle RefEdit avec un objet UserForm

Contrôle de l’image

Il est l’objectif du contrôle Image pour afficher une image sur un formulaire utilisateur. Pour assigner une image à un contrôle Image au moment de l’exécution, utilisez la fonction LoadPicture .

Le chargement d’une image dans un contrôle Image

Pour insérer un contrôle d’Image qui vous invite à sélectionner l’image à charger lorsque vous cliquez sur le contrôle Image , procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Insertion , cliquez sur
    UserForm pour insérer un objet UserForm dans votre classeur.
  4. Ajouter un contrôle Image sur l’objet UserForm.
  5. Double-cliquez sur le contrôle Image pour ouvrir la fenêtre de Code du contrôle d’Image .
  6. Dans la fenêtre Code, tapez le code suivant pour l’événement Click de Image1 :
    Private Sub Image1_Click()
    Dim fname As String

    ' Display the Open dialog box.
    fname = Application.GetOpenFilename(filefilter:= _
    "Bitmap Files(*.bmp),*.bmp", Title:="Select Image To Open")

    ' If you did not click Cancel...
    If fname <> "False" Then

    ' Load the bitmap into the Image control.
    Image1.Picture = LoadPicture(fname)

    ' Refresh the UserForm.
    Me.Repaint
    End If

    End Sub

  7. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.

    L’objet UserForm s’affiche.
  8. Cliquez sur le contrôle Image .

    Lorsque vous cliquez sur le contrôle d’Image , la boîte de dialogue Sélectionner Image à ouvrir s’affiche et puis, vous pouvez sélectionner un fichier bitmap à insérer dans le contrôle.
Pour plus d’informations sur le contrôle Image, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
213732 XL2000 : à l’aide de la fonction LoadPicture avec un contrôle d’Image

Informations supplémentaires

L’Explorateur d’objets

Une liste complète de toutes les propriétés et les méthodes pour une commande spécifique est disponible dans l' Explorateur d’objets. Pour trouver ces informations dans Excel, procédez comme suit :
  1. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  2. Dans le menu affichage , cliquez sur Explorateur d’objets.
  3. Dans la zone de Texte de recherche , tapez le nom du contrôle que vous souhaitez, puis cliquez sur Rechercher.
Pour plus d’informations sur l’utilisation de l’Explorateur d’objets, dans Visual Basic Editor, cliquez sur Aide de Microsoft Visual Basic dans le menu aide , tapez Explorateur d’objets dans le Compagnon Office ou l’aide intuitive, puis cliquez sur
Recherche pour afficher la rubrique.

Pour plus d’informations sur la façon d’installer l’aide de Microsoft Excel sur votre ordinateur, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
231946 OFF2000 : comment faire pour ajouter ou supprimer un seul programme ou composant Office

Propriétés

ID d'article : 829070 - Dernière mise à jour : 18 févr. 2017 - Révision : 2

Microsoft Office Excel 2003, Microsoft Excel 2010, Microsoft Office Excel 2007, Excel 2016, Microsoft Excel 2013

Commentaires