/ / Excel VBA Userform et plages

Formulaire utilisateur et plages Excel VBA

Vous pouvez utiliser un Contrôle RefEdit dans Excel VBA pour obtenir une plage d'un utilisateur. le Formulaire utilisateur nous allons créer des couleurs la valeur minimale de la intervalle stocké dans le contrôle RefEdit.

Formulaire utilisateur et plages dans Excel VBA

Pour créer ce Userform, exécutez les étapes suivantes.

1. Ouvrez Visual Basic Editor. Si l'explorateur de projet n'est pas visible, cliquez sur Affichage, Explorateur de projets.

2. Cliquez sur Insérer, Userform. Si la boîte à outils n'apparaît pas automatiquement, cliquez sur Affichage, Boîte à outils. Votre écran devrait être configuré comme ci-dessous.

Configuration de l'écran du formulaire utilisateur dans Excel VBA

3 Ajoutez l’étiquette, le contrôle RefEdit et les boutons de commande. Une fois que cela est terminé, le résultat doit être cohérent avec l'image du Userform présentée précédemment. Par exemple, créez un contrôle RefEdit en cliquant sur RefEdit dans la boîte à outils. Ensuite, vous pouvez faire glisser un contrôle RefEdit sur le Userform.

Remarque: Si votre boîte à outils ne possède pas de contrôle RefEdit, définissez une référence au contrôle RefEdit. Cliquez sur Outils, Références et cochez Ref Edit Control.

4 Vous pouvez modifier les noms et les légendes des contrôles. Les noms sont utilisés dans le code Excel VBA. Les légendes sont celles qui apparaissent sur votre écran. Il est judicieux de changer le nom des contrôles, mais cela n’est pas nécessaire ici car nous n’avons que quelques contrôles dans cet exemple. Pour modifier la légende des boutons Userform, Label et Command, cliquez sur View, Properties Window, puis sur chaque contrôle.

5. Pour afficher le formulaire utilisateur, 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 le Sub UserForm_Initialize. Lorsque vous utilisez la méthode Show pour Userform, ce sous-programme sera automatiquement exécuté.

6. Ouvrez Visual Basic Editor.

7. Dans l'Explorateur de projet, cliquez avec le bouton droit sur UserForm1, puis cliquez sur Afficher le code.

8. Choisissez Userform dans la liste déroulante de gauche. Choisissez Initialiser dans la liste déroulante de droite.

9. 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 modifie la couleur de police de toutes les cellules de la feuille 1 en noir. La deuxième ligne de code obtient l'adresse de la sélection actuelle et l'affiche dans le contrôle RefEdit.

Nous avons maintenant créé la première partie du Userform. Bien que cela ait déjà l'air sympa, rien ne se passera quand on cliquera sur les boutons de commande du Userform.

10. Dans l'Explorateur de projet, double-cliquez sur UserForm1.

11. Double-cliquez sur le bouton Go.

12. 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 la stockons dans la variable String addr. Ensuite, nous définissons rng sur 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 plage. Enfin, nous colorons la ou les valeurs minimales à l’aide d’une boucle.

13. Double-cliquez sur le bouton Annuler.

14. Ajoutez la ligne de code suivante:

Private Sub CommandButton2_Click()

Unload Me

End Sub

Explication: cette ligne de code ferme le formulaire utilisateur lorsque vous cliquez sur le bouton Annuler.

15. Testez le formulaire utilisateur.

Résultat:

Résultat Userform et Ranges

Lisez aussi: