Excel VBA Userform et plages
Vous pouvez utiliser un contrôle RefEdit dans Excel VBA pour obtenir une gamme d’un utilisateur. Le Userform nous allons créer des couleurs à la valeur minimale de la plage stockée dans le contrôle RefEdit.
Pour créer cette Userform, exécutez les étapes suivantes.
-
Ouvrez le Visual Basic Editor. Si l’Explorateur de projets n’est pas visible, cliquez sur Afficher, Project Explorer.
-
Cliquez sur Insérer, Userform. Si la boîte à outils n’apparaît pas automatiquement, cliquez sur Affichage, Boîte à outils. Votre écran doit être configuré comme ci-dessous.
-
Ajouter l’étiquette, le contrôle RefEdit et boutons de commande. Une fois cet exercice terminé, le résultat devrait être compatible avec l’image du Userform indiqué précédemment. Par exemple, créer un contrôle RefEdit en cliquant sur RefEdit de la boîte à outils. Ensuite, vous pouvez faire glisser un contrôle RefEdit sur le Userform.
Remarque: Si votre boîte à outils ne dispose pas d’un contrôle RefEdit, définir une référence au contrôle RefEdit. Cliquez sur Outils, références et vérifier Réf Edit Control.
-
Vous pouvez modifier les noms et les légendes des contrôles. Les noms sont utilisés dans le code VBA Excel. Les légendes sont celles qui apparaissent sur votre écran. Il est bon de changer les noms des contrôles, mais il est pas nécessaire ici parce que nous avons seulement quelques contrôles dans cet exemple. Pour modifier la légende des boutons formUtilisateur, étiquette et de commande, cliquez sur Affichage, fenêtre Propriétés et cliquez sur chaque contrôle.
-
Pour afficher le Userform, placez un bouton de commande sur votre feuille de calcul et ajoutez la ligne de code suivante:
Private Sub CommandButton1_Click() UserForm1.Show End Sub
Nous allons maintenant créer la sous UserForm_Initialize. Lorsque vous utilisez la méthode Show pour la Userform, ce sous sera exécuté automatiquement.
-
Ouvrez Visual Basic Editor.
-
Dans l’Explorateur de projets, cliquez droit sur UserForm1 puis cliquez sur Afficher le code.
-
Choisissez Userform dans la liste déroulante de gauche. Choisissez Initialiser de la droite liste déroulante.
-
Ajoutez les lignes de code suivantes:
Private Sub UserForm_Initialize() Sheet1.Cells.Font.Color = vbBlack UserForm1.RefEdit1.Text = Selection.Address End Sub
Explication: la première ligne de code change la couleur de police de toutes les cellules sur sheet1 au noir. La deuxième ligne de code obtient l’adresse de la sélection courante et l’affiche dans le contrôle RefEdit.
Nous avons créé la première partie de la Userform. Bien qu’il semble déjà soignée, rien ne se passera encore lorsque l’on clique sur les boutons de commande sur le Userform.
-
Dans l’Explorateur de projets, double-cliquez sur UserForm1.
-
Double-cliquez sur le bouton Go.
-
Ajoutez les lignes de code suivantes:
Private Sub CommandButton1_Click() Dim addr As String, rng, cell As Range, minimum As Double addr = RefEdit1.Value Set rng = Range(addr) minimum = WorksheetFunction.Min(rng) For Each cell In rng If cell.Value = minimum Then cell.Font.Color = vbRed Next cell End Sub
Explication: Tout d’abord, nous obtenons l’adresse du contrôle RefEdit et le stocker dans la adr variable String. Ensuite, nous avons mis RNG à la plage spécifiée dans le contrôle RefEdit. Ensuite, nous utilisons la fonction de feuille de calcul min pour trouver la valeur minimale dans la gamme. Enfin, nous la couleur de la valeur minimale (s) en utilisant une boucle.
-
Double-cliquez sur le bouton Annuler.
-
Ajouter la ligne de code suivant:
Private Sub CommandButton2_Click() Unload Me End Sub
Explication: cette ligne de code ferme la Userform lorsque vous cliquez sur le bouton Annuler.
-
Testez la Userform.
Résultat: