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

Traductions disponibles Traductions disponibles
Numéro d'article: 829070 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

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

Une introduction aux principes de base des UserForms décrit comment afficher des UserForms, afin de masquer temporairement les UserForms et faire disparaître les UserForms. Comment utiliser les événements les plus courants sont également affichés associé à UserForms ? le Initialiser événement, le Cliquez sur événement et la Terminer événement. Un ou plusieurs des exemples suivants montrent comment dans un objet UserForm, utilisez chacun des contrôles ActiveX ? suivants :
  • Étiquette contrôle
  • Zone de texte contrôle
  • Contrôle CommandButton contrôle
  • ListBox contrôle
  • Contrôle ComboBox contrôle
  • Cadre contrôle
  • Contrôle OptionButton contrôle
  • Case à cocher contrôle
  • Contrôle ToggleButton contrôle
  • Contrôle TabStrip contrôle
  • Contrôle multiPage contrôle
  • Barre de défilement contrôle
  • Contrôle SpinButton contrôle
  • RefEdit contrôle
  • Image contrôle

INTRODUCTION

Cet article décrit comment utiliser VBA pour apporter des modifications dans UserForms dans Excel.

Plus d'informations

Microsoft fournit des exemples de programmation à titre d'illustration uniquement, sans garantie expresse ou implicite. Cela sous-entend, sans toutefois être exhaustif, un processus opérationnel pour des circonstances d'utilisation particulières. Cet article suppose que vous êtes familiarisé avec le langage de programmation présenté ainsi qu'avec les outils utilisés pour créer et déboguer les procédures. Les ingénieurs du support technique Microsoft sont en mesure de vous expliquer une procédure particulière mais ne modifieront pas le code proposé en vue d'ajouter des fonctionnalité supplémentaires ou bien de concevoir des procédures qui répondraient à vos besoin 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 les éléments suivants :
UserFormName.Afficher
Pour afficher un UserForm est nommé UserForm1, utilisez la commande suivante code :
UserForm1.Show
Vous pouvez charger un objet UserForm dans la mémoire sans l'afficher réellement. Plusieurs secondes peuvent être nécessaires à un UserForm complexe pour s'afficher. Dans la mesure où vous pouvez précharger un UserForm dans la mémoire, vous pouvez décider quand à engager cette surcharge. Pour charger 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 indiquée.

Comment faire pour masquer temporairement un UserForm

Si vous souhaitez masquer temporairement un objet UserForm, utilisez la méthode Hide . Vous souhaiterez peut-être masquer une feuille 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 d'article suivant pour afficher l'article correspondant dans la Knowledge Microsoft Base :
213747XL2000 : 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 est nommé UserForm1, utilisez le code suivant :
Unload UserForm1
Si vous déchargez un 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 CommandButton ), vous pouvez utiliser "Me" mot clé au lieu du nom de la UserForm. Pour utiliser « Me » mot clé pour décharger un objet UserForm, utilisez le code suivant :
Unload Me

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

De nombreux événements prédéfinis que vous pouvez joindre VBA prend en charge les UserForms procédures pour. Lorsque l'événement se produit, la procédure que vous avez joints à la é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 événementielle peut être appelé un module « derrière » le UserForm. Un module qui contient l'événement les procédures n'est pas visible dans la collection de Modules de la fenêtre Explorateur de projet de Microsoft de l'objet visuel Éditeur de base. Vous devez double-cliquer sur le corps d'un objet UserForm afin d'afficher l'objet UserForm Module de code.

Comment intercepter des événements UserForm

Pour intercepter des événements de l'objet UserForm, procédez comme suit :
  1. Créer un nouveau classeur dans Excel.
  2. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  3. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  4. Double-cliquez sur le Objet UserForm Pour afficher le Fenêtre de 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. Sur la Exécuter menu, 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éclenche 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 le UserForm. L'événement Resize se produit deux fois, car le code derrière l'événement Click modifie la propriété Width et 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 a 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 le 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 le légende de l'objet UserForm retourne à son état d'origine.

Comment faire pour empêcher la fermeture à l'aide du bouton Fermer un UserForm

Lorsque vous exécutez un objet UserForm, un Fermer le bouton est ajouté. dans le coin supérieur droit de la fenêtre UserForm. Si vous souhaitez empêcher le UserForm fermeture à l'aide de la Fermer bouton, 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. Utilisez l'argument CloseMode de l'événement QueryClose pour déterminer comment le UserForm est fermé. La valeur vbFormControlMenu pour l'argument CloseMode indique que la Fermerbouton l'utilisateur a cliqué. 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. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  3. Sur la Insérer menu, cliquez surObjet 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 Objet UserForm Pour afficher le Fenêtre de 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. Sur la Exécuter menu, cliquez sur Exécuter Sub/UserForm.
L'objet UserForm n'est pas fermé lorsque vous cliquez sur le Fermer . Vous devez cliquer sur le Contrôle CommandButton contrôle pour fermer l'objet UserForm.

Pour plus d'informations, cliquez sur le numéro de l'article ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :
207714XL2000 : 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 exécute la 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 masquer temporairement un UserForm
213747 XL2000 : Comment passer UserForms personnalisés avec des boutons de commande
213749 XL2000 : comment Pour 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 pour les commandes de formulaire. Cette section contient divers exemples de programmes qui utilisent ces contrôles.

Remarque : Le code VBA qui est inclus dans cet article ne contient-elle pas exemples qui affectent toutes les propriétés et événements pour les contrôles. Si vous devoir, vous pouvez utiliser la fenêtre Propriétés pour afficher la liste des propriétés qui sont disponibles pour un contrôle. Pour afficher la liste des propriétés, dans la Affichage menu, cliquez sur Fenêtre Propriétés.

Comment utiliser le mode de conception 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 laAffichage menu, 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 afficher la façon que les utilisateurs voient elle, le programme est en mode exécution. Modifications que vous apportez aux propriétés d'un contrôle de l'exécution mode ne sont pas conservées lorsque l'objet UserForm est déchargé de la mémoire.

Remarque : Les contrôles répondent aux événements en mode 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 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 UserForm est 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'êtes pas obligé de 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 CommandButton .

Contrôles Label

Contrôles Label sont principalement utilisées pour décrire d'autres contrôles sur un UserForm. Un contrôle Label ne peut pas être modifié par l'utilisateur, tandis que l'objet UserForm est en cours d'exécution. 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 mettre en forme un contrôle Label : la propriété de police et de la propriété ForeColor .

Comment 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. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  3. Sur la Insérer menu, cliquez surObjet 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 le contrôle à Ouvrez la fenêtre de 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. Sur la Exécuter menu, cliquez sur Exécuter Sub/UserForm.
  9. Cliquez sur le Contrôle CommandButton.
Le texte « Ceci est l'exemple étiquette 1 "apparaît sur le contrôle d'étiquette en gras Times New Roman d'une taille de police de 14.

Contrôles TextBox

Contrôles TextBox sont fréquemment 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 TextBox , il devient un "masqué" contrôle de modification. Chaque caractère qui est tapé dans la zone de texte du contrôle est visuellement remplacé 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. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  3. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  4. Ajoutez un contrôle TextBox à l'objet UserForm.
  5. Sur la Affichage menu, cliquez surProprié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 le contrôle à Ouvrez la fenêtre de 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. Sur la Exécuter menu, cliquez sur Exécuter Sub/UserForm.
  11. Tapez le mot de passe objet UserForm dans le contrôle TextBox .
  12. Cliquez sur le Contrôle CommandButtoncontrôle.
Pour cet exemple, le mot de passe est « objet userform ». Si vous tapez un mot de passe incorrect, 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 de bienvenue et est l'objet UserForm fermé.

Pour plus d'informations, cliquez sur le numéro d'article suivant pour afficher l'article correspondant dans la Knowledge Microsoft Base :
213555XL2000 : Pas de propriété de Validation des données pour 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 attaché à l'événement Click du contrôle CommandButton . Pour utiliser un contrôle CommandButton 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. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  3. Sur la Insérer menu, cliquez surObjet 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 le contrôle à 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. Sur la Exécuter menu, cliquez sur Exécuter Sub/UserForm.
La couleur d'arrière-plan de la CommandButton1modifications du contrôle chaque fois que vous cliquez dessus.

Pour plus d'informations sur le Contrôle CommandButton de contrôle, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :
213572XL2000 : En cliquant sur bouton Annuler ne peut-être pas disparaître UserForm
213743 XL2000 : Comment faire pour définir le bouton de commande par défaut sur un objet UserForm

Contrôles ListBox

Le but du contrôle ListBox est à présenter à l'utilisateur une liste d'éléments à sélectionner à partir. Vous pouvez stocker la liste d'éléments pour 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 le élément actuellement sélectionné dans un contrôle ListBox sélectionnez 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. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  4. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  5. Ajouter un contrôle ListBox à l'objet UserForm.
  6. Double-cliquez sur le ListBox le contrôle à 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. Sur la Exécuter menu, cliquez sur Exécuter Sub/UserForm.
Lorsque vous cliquez sur un élément dans la liste, une boîte de message s'affiche avec l'élément actuellement sélectionné.

Comment obtenir les éléments sélectionnés dans un contrôle ListBox select multiples

Pour déterminer les éléments qui sont sélectionnés dans un contrôle ListBox sélectionnez plusieurs, vous devez parcourir tous les éléments dans la liste, et ensuite interroger la propriété Selected . Pour retourner les éléments actuellement sélectionnés dans un multiple Sélectionnez le contrôle ListBox , 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. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  4. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  5. Ajouter un contrôle ListBox à l'objet UserForm.
  6. Sur la Affichage menu, cliquez surProprié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 le contrôle à 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. Sur la Exécuter menu, cliquez sur Exécuter Sub/UserForm.
  12. Sélectionnez un ou plusieurs éléments dans la liste.
  13. Cliquez sur CommandButton1.
Après avoir cliqué sur CommandButton1, chaque élément vous avez sélectionné dans la zone de liste de contrôle s'affiche dans un message séparé. Après tout le texte sélectionné les éléments s'affichent dans une boîte de message, l'objet UserForm est fermé automatiquement.

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

Pour utiliser la propriété RowSource pour remplir un contrôle ListBox à partir d'une plage de cellules dans 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. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  4. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  5. Ajouter 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 le contrôle à 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. Sur la Exécuter menu, cliquez sur Exécuter Sub/UserForm.

    Remarque :ListBox1 ne contient pas de valeurs.
  10. Cliquez sur 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 montre comment remplir un contrôle ListBox avec une variable de tableau. Vous devez affecter les valeurs à partir de tableau dans lequel l'élément de contrôle un contrôle ListBox à la fois. En général, ce processus requiert que vous utilisez une structure de boucles, par exemple 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. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  3. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  4. Ajouter un contrôle ListBox à l'objet UserForm.
  5. Sur la Insérer menu, cliquez surModule 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. Sur la Outils menu, cliquez surMacros, cliquez sur PopulateListBox, puis cliquez surExé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 . Puis, 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 horizontale de cellules, 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. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  4. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  5. Ajouter un contrôle ListBox à l'objet UserForm.
  6. Sur la Insérer menu, cliquez surModule 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. Sur la Outils menu, cliquez surMacros, cliquez surPopulateListWithHorizontalRange, puis cliquez surExécuter.
La macro procédure effectue une boucle à travers les cellules a1: E5 dans la feuille Sheet1, ajout 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 est lié à plusieurs colonnes de données

Vous pouvez mettre en forme les contrôles ListBox 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ées sur Feuil1 :

    Réduire ce tableauAgrandir ce tableau
    A1 : annéeB1 : régionC1 : ventes
    A2 : 1996 B2 : nordC2 : 140
    A3 : 1996B3 : SudC3 : 210
    A4 : 1997B4 : nordC4 : 190
    A5 : 1997B5 : SudC5 : 195
  3. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  4. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  5. Ajoutez un contrôle Label à l'objet UserForm.
  6. Ajouter un contrôle ListBox à l'objet UserForm.
  7. Cliquez sur le ListBox, puis cliquez surPropriétés.
  8. Tapez ou sélectionnez les valeurs qui sont indiquées pour le propriétés suivantes du contrôle ListBox comme indiqué dans le tableau suivant :
       Property       Value
       ----------------------------
       BoundColumn     1
       ColumnCount     3
       ColumnHeads     True
       RowSource       Sheet1!A2:A5
  9. Double-cliquez sur le ListBox le contrôle à 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. Sur la Exécuter menu, cliquez sur Exécuter Sub/UserForm.
Lorsque vous cliquez sur une entrée dans le contrôle ListBox , l'étiquette change pour afficher les éléments dans les trois Cette entrée.

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

Pour supprimer tous les éléments d'un contrôle ListBox lié à une feuille de calcul, effacez la valeur qui est stocké dans la propriété contenu (RowSource) . Pour supprimer des éléments d'un contrôle ListBox 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. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  4. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  5. Ajouter un contrôle ListBox à l'objet UserForm.
  6. Cliquez sur le ListBox contrôle, puis Cliquez sur Propriétés.
  7. Dans la propriété contenu (RowSource) , tapez : Feuille Sheet1 !A1: A5.
  8. Ajoutez un contrôle CommandButton sur l'objet UserForm.
  9. Double-cliquez sur le Contrôle CommandButton le contrôle à 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. Sur la Exécuter menu, cliquez sur Exécuter Sub/UserForm.

    Le contrôle de zone de listeque vous avez ajouté à l'objet UserForm est rempli avec le valeurs que vous avez entré dans la feuille Sheet1.
  12. Cliquez sur 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 aucune commande VBA unique qui supprime tous les éléments dans un contrôle ListBox si la liste n'est pas liée à une feuille de calcul. Pour supprimer tous les les éléments d'un contrôle ListBox qui est remplie à partir d'un tableau Visual Basic, procédez comme étapes suivantes :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  3. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  4. Ajouter un contrôle ListBox à l'objet UserForm.
  5. Sur la Insérer menu, cliquez surModule 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 le contrôle à 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. Sur la Outils menu, cliquez surMacros, cliquez sur PopulateListBox, puis cliquez surExécuter.

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

Pour plus d'informations sur le contrôle zone de liste, cliquez sur l'article suivant numéros pour afficher les articles correspondants dans la Base de connaissances Microsoft :
161598OFF : Comment ajouter des données à un contrôle ComboBox ou 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 UserForms
211899 XL2000 : Problèmes définition des en-têtes de colonne dans le contrôle ListBox
213721 XL2000 : Comment faire pour supprimer tous les éléments d'un contrôle ListBox ou un ComboBox
213722 XL2000 : Comment utiliser la propriété TextColumn
213723 XL2000 : Comment faire pour retourner des valeurs à partir d'une zone de liste qui affiche plusieurs colonnes
213746 XL2000 : comment pour remplir un contrôle de zone de liste avec plusieurs plages
213748 XL2000 : comment 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 pour déterminer quels éléments sont sélectionnés dans une zone de liste

Contrôles ComboBox

Vous pouvez utiliser le contrôle 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électionnez 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 modifiable.

Remarque : Tous les exemples dans la section précédente pour le contrôle ListBox peuvent également être appliqués au contrôle ComboBox , à l'exception de la « comment obtenir les éléments sélectionnés dans un exemple de contrôle ListBox select multiples ».

Comment ajouter un nouvel élément à la liste si le contrôle ComboBox 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 ComboBox si le contrôle ComboBox n'est pas lié à la feuille de calcul, procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  3. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  4. Ajoutez un contrôle ComboBox à l'objet UserForm.
  5. Sur la Insérer menu, cliquez surModule 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 le contrôle à 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. Sur la Outils menu, cliquez surMacros, cliquez sur PopulateListBox, puis cliquez surExécuter.

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

Comment ajouter un nouvel élément à la liste si le contrôle ComboBox 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 ComboBox .
  3. Sélectionnez les cellules a1: a5 de la feuille Sheet1.
  4. Sur la Insérer menu, pointez surNom, puis cliquez sur Définir.

    Dans leNoms dans le classeur zone, tapez ListRange , puis cliquez sur OK. Cela 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. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  6. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  7. Ajoutez un contrôle ComboBox à l'objet UserForm.
  8. Dans le Propriétés Tapez ComboBox1, Feuille Sheet1 !ListRange comme leContenu (RowSource) propriété.
  9. Ajoutez un contrôle CommandButton sur l'objet UserForm.
  10. Double-cliquez sur le Contrôle CommandButton le contrôle à 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. Sur la Exécuter menu, cliquez sur Exécuter Sub/UserForm.

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

Comment faire pour afficher la liste d'un contrôle ComboBox 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 ComboBox .
  3. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  4. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  5. Ajoutez un contrôle ComboBox à l'objet UserForm.
  6. Dans le Propriétés Tapez ComboBox1, Feuille Sheet1 !A1: A5 comme leContenu (RowSource) propriété.
  7. Double-cliquez sur le Objet UserForm Pour afficher le Fenêtre de code pour l'objet UserForm.
  8. Dans la fenêtre Code, tapez le code suivant pour l'événement Click du contrôle CommandButton :
    Private Sub UserForm_Activate()
    
               ComboBox1.DropDown
    
           End Sub
  9. Sur la Exécuter menu, 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 ComboBox lorsqu'un choix est effectué dans un autre contrôle ComboBox , 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 ComboBox .
  3. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  4. Sur la Insérer menu, cliquez surModule.
  5. Dans la fenêtre Code du module, tapez le code suivant :
    Sub DropDown_ComboBox()
    
        UserForm1.ComboBox2.DropDown
    
    End Sub
  6. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  7. Ajoutez un contrôle ComboBox à l'objet UserForm.
  8. Dans le Propriétés Tapez ComboBox1, Feuille Sheet1 !A1: A5 comme leContenu (RowSource) propriété.
  9. Double-cliquez sur le Contrôle ComboBox contrôle à ouvrir la fenêtre de Code pour le contrôle ComboBox .
  10. Dans la fenêtre de Code pour le contrôle ComboBox , 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 ComboBox à l'objet UserForm.
  12. Dans le Propriétés pour ComboBox2, tapez Feuille Sheet1 !A6:A10 comme leContenu (RowSource) propriété.
  13. Sur la Exécuter menu, cliquez sur Exécuter Sub/UserForm.
Lorsque vous cliquez sur un élément dans la liste ComboBox1 , la liste pour ComboBox2 s'affiche automatiquement.

Pour plus d'informations à propos du contrôle de zone de liste déroulante, cliquez sur les numéros ci-dessous pour afficher les articles de la Base de connaissances Microsoft :
161598OFF : Comment ajouter des données à un contrôle ComboBox ou une zone de liste dans Excel ou Word
211446 XL2000 : Propriété TextColumn affiche uniquement la première colonne
211899 XL2000 : Problèmes définition 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 contrôle ComboBox lorsqu'un objet UserForm est affiché
213721 XL2000 : Comment faire pour supprimer tous les éléments d'un contrôle ListBox ou un ComboBox
213722 XL2000 : Comment utiliser la propriété TextColumn
213752 XL2000: À l'aide de la méthode AddItem provoque une erreur lorsque lié aux données est contenu (RowSource)
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 connexes logiquement 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. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  3. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  4. Ajouter un contrôle Frame pour 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 Cadre contrôle pour ouvrir le Fenêtre de code pour le contrôle Frame .
  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. Sur la Exécuter menu, cliquez sur Exécuter Sub/UserForm.
  9. Dans l'objet UserForm, cliquez sur le Cadrecontrôle.
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 sur le Cadrecontrôle à nouveau, 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 appliquez une 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 non 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 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 vérification de la propriété Value de chaque contrôle. Pour déterminer quel contrôle OptionButton est sélectionné, procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  3. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  4. Ajouter un contrôle Frame pour 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 le contrôle à 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. Sur la Exécuter menu, cliquez sur Exécuter Sub/UserForm.
  10. Dans le Objet UserForm, cliquez sur un contrôle OptionButton , puis cliquez surCommandButton1.
Une boîte de message s'affiche qui contient la légende de l'actuellement contrôle OptionButton sélectionné.

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

L'exemple suivant vise à déterminer le contrôle OptionButton est sélectionné Groupe1. Pour créer un UserForm a deux groupes de contrôles OptionButton , procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  3. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  4. Ajouter un contrôle Frame pour 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 Frame 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 le contrôle à 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. Sur la Exécuter menu, cliquez sur Exécuter Sub/UserForm.
  13. Dans l'objet UserForm, cliquez sur un contrôle OptionButton dans Group1, puis cliquez surCommandButton1.
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 Contrôles OptionButton, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
213724XL2000 : Les 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 CheckBox qui apparaît avec une coche qu'il indique une valeur de True. Une case à cocher qui apparaît avec aucune coche indique la valeur False. Si la valeur de la propriété TripleState est True, un contrôle CheckBox peut aussi avoir une valeur null. Un contrôle CheckBox 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 non et la valeur False indiquent qu'un contrôle de case à cocher est désactivé.

Comment vérifier la valeur d'un contrôle CheckBox

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. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  3. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  4. Ajouter un contrôle CheckBox à l'objet UserForm.
  5. Dans la liste de propriétés pour CheckBox1, sélectionnez True comme la propriété TripleState .
  6. Double-cliquez sur le Case à cocher le contrôle à afficher la fenêtre de Code du contrôle CheckBox .
  7. Dans la fenêtre Code, tapez le code suivant pour l'événement Change 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. Sur la Exécuter menu, cliquez sur Exécuter Sub/UserForm.
Lorsque vous cliquez sur le Case à cocher contrôle, la légende du contrôle CheckBox change pour refléter la valeur actuelle.

Contrôle ToggleButton

Un contrôle ToggleButton a la même apparence qu'un contrôle CommandButton 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 aussi avoir une 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 non 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. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  3. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  4. Ajoutez un contrôle ToggleButton sur l'objet UserForm.
  5. Ajoutez un contrôle Label à l'objet UserForm.
  6. Double-cliquez sur le Contrôle ToggleButton le contrôle à Ouvrez 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. Sur la Exécuter menu, cliquez sur Exécuter Sub/UserForm.
Lorsque vous cliquez sur le contrôle ToggleButton , la couleur d'arrière-plan des modifications UserForm.

Comment créer un groupe de contrôles ToggleButton s'excluent mutuellement

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 ToggleButton qui est sélectionné, puis annule les autres. Pour créer un groupe de contrôles ToggleButton s'excluent mutuellement, procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  3. Sur la Insérer menu, cliquez surModule.
  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. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  6. Ajouter un contrôle Frame pour 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 Cadre contrôle à 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 ToggleButton MouseUp :
    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. Sur la Exécuter menu, 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 pour un ensemble de contrôles.

Comment contrôler par programmation un contrôle TabStrip

Pour modifier la propriété BackColor d'un contrôle Image en fonction de l'onglet est sélectionné, procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Editor.
  3. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  4. Ajouter un contrôle TabStrip à l'objet UserForm.
  5. Ajouter 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 & dans la propriété BackColor .
  7. Double-cliquez sur le Contrôle TabStrip contrôle à ouvrir la fenêtre de Code pour le contrôle TabStrip .
  8. Dans la fenêtre Code, tapez le code suivant pour l'événement TabStrip1 Change :
    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. Sur la Exécuter menu, cliquez sur Exécuter Sub/UserForm.
La couleur du contrôle Image change en fonction de la page dans le contrôle TabStrip est active.

Pour plus d'informations sur le contrôle TabStrip contrôler, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
213254XL2000 : 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 que 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 contrôler à l'aide d'une macro, procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  3. Sur la Insérer menu, cliquez surObjet 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 TextBox à Page1 sur le contrôle MultiPage .
  7. Dans le contrôle MultiPage , cliquez sur Page2, puis 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 contrôle à ouvrir la fenêtre de Code du contrôle MultiPage .
  9. Dans la fenêtre Code, tapez le code suivant pour l'événement Change 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. Sur la Exécuter menu, cliquez sur Exécuter Sub/UserForm.

    Dans le contrôle TextBox sur la page 1, tapez Test. Lorsque vous Cliquez sur le Page2 onglet, 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 d'Assistant peut être très efficace. Vous pouvez utiliser le contrôle MultiPage pour créer une interface d'Assistant au lieu d'utiliser plusieurs UserForms. Cet exemple 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 page zéro. Ceci procédure également définit la légende des contrôles CommandButton et désactive le <> bouton.

Remarque : La procédure qui est assignée à l'événement Click du contrôle CommandButton1 contrôle les fonctionnalités de la <> 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. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  3. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  4. Ajouter un contrôle MultiPage à l'objet UserForm.
  5. Cliquez sur le Page1 onglet, puis cliquez surNouvelle Page Pour ajouter la Page3 au contrôle MultiPage .
  6. Ajoutez un contrôle CommandButton sur l'objet UserForm qui n'est 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 le Objet UserForm Pour ouvrir le Code fenêtre de 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. Sur la Exécuter menu, cliquez sur Exécuter Sub/UserForm.
Lorsque vous cliquez sur Prochaine >Page2 est activé et le <> bouton devient disponible. Lorsque vous cliquez sur Prochaine > une deuxième fois, Page3 est activé et la légende CommandButton2 modifications apportées à la « Fin ».

ScrollBar (contrôle)

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 Label .

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. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  3. Sur la Insérer menu, cliquez surObjet 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 Barre de défilement contrôle à 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 Change ScrollBar1 :
    Private Sub ScrollBar1_Change()
    
        Label1.Caption = ScrollBar1.Value
    
    End Sub
  8. Sur la Exécuter menu, 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 .

Contrôle SpinButton

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 Label . La propriété SmallChange détermine combien la valeur d'un contrôle SpinButton change lorsque vous cliquez dessus.

Comment 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 TextBox , procédez comme suit :
  1. Démarrez Excel et ouvrez un nouveau classeur vide.
  2. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  3. Sur la Insérer menu, cliquez surObjet 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 le contrôle à Ouvrez la fenêtre de Code pour le contrôle SpinButton .
  7. Dans la fenêtre Code, tapez le code suivant pour l'événement SpinUp 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 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. Sur la Exécuter menu, 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 attaché à l'événement SpinUp et l'événement SpinDown décrémente de SpinButton1.

Pour plus d'informations sur contrôle SpinButton de contrôle, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
213224XL2000 : Visual Basic exemple pour l'utilisation 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é 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 en utilisant le 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. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  3. Sur la Insérer menu, cliquez surObjet UserForm Pour insérer un objet UserForm dans votre classeur.
  4. Ajouter 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 le contrôle à Ouvrez 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. Sur la Exécuter menu, 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 CommandButton1.
Ferme l'objet UserForm et contiennent les cellules que vous avez sélectionné maintenant le mot « test ».

Pour informations supplémentaires sur le contrôle RefEdit, cliquez sur l'article suivant numéro pour afficher l'article correspondant dans la Base de connaissances Microsoft :
213776XL2000 : Comment utiliser le contrôle RefEdit avec un objet UserForm

Contrôle de l'image

L'objectif du contrôle Image consiste à afficher une image sur un objet UserForm. Pour affecter un image à un contrôle Image au moment de l'exécution, utilisez la fonction LoadPicture .

Comment charger 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. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  3. Sur la Insérer menu, cliquez surObjet 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 Image contrôle pour ouvrir le Fenêtre de code pour le contrôle d'Image .
  6. Dans la fenêtre Code, tapez le code suivant pour l'événement Click 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. Sur la Exécuter menu, cliquez sur Exécuter Sub/UserForm.

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

    Lorsque vous cliquez sur le contrôle Image , la Sélectionnez l'Image à ouvrir boîte de dialogue s'affiche, et ensuite, 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 d'article suivant pour afficher l'article correspondant dans la Knowledge Microsoft Base :
213732XL2000: À 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 méthodes pour un spécifique la commande est disponible dans l' Explorateur d'objets. Pour trouver ces informations dans Excel, procédez comme suit :
  1. Sur la Outils menu, pointez surMacro, puis cliquez sur Visual Basic Éditeur.
  2. Sur la Affichage menu, cliquez sur Objet Navigateur.
  3. Dans le Texte de recherche Tapez le nom de le contrôle qui vous intéresse, puis cliquez sur Recherche.
Pour plus d'informations sur l'utilisation de l'Explorateur d'objets, dans Visual Basic Editor, cliquez sur Aide de Microsoft Visual Basicsur la Aide menu, tapez Explorateur d'objetsdans le Compagnon Office ou l'aide intuitive et cliquez sur Recherche Pour afficher la rubrique.
Pour plus d'informations sur Comment faire pour installer l'aide de Microsoft Excel sur votre ordinateur, cliquez sur les éléments suivants numéro d'article pour afficher l'article correspondant dans la Base de connaissances Microsoft :
231946OFF2000 : Procédures pour ajouter ou supprimer un seul programme ou composant Office

Propriétés

Numéro d'article: 829070 - Dernière mise à jour: jeudi 25 juillet 2013 - Version: 13.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Office Excel 2003
  • Microsoft Excel 2010
  • Microsoft Office Excel 2007
Mots-clés : 
kbprogramming kbfunctions kbhowtomaster kbhowto kbmt KB829070 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d?une traduction incorrecte du contenu ou de son utilisation par les clients.
La version anglaise de cet article est la suivante: 829070
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com