Formulaire utilisateur et plages Excel VBA - Macros Excel faciles

Table des matières

Vous pouvez utiliser un Champ 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 gamme stocké dans le champ RefEdit.

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

1. Ouvrez l'éditeur Visual Basic. Si l'Explorateur de projets n'est pas visible, cliquez sur Affichage, Explorateur de projets.

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

3. Ajoutez l'étiquette, le contrôle RefEdit et les boutons de commande. Une fois cette opération terminée, le résultat doit être cohérent avec l'image du formulaire utilisateur 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 formulaire utilisateur.

Remarque : Si votre boîte à outils n'a pas de contrôle RefEdit, définissez une référence au contrôle RefEdit. Cliquez sur Outils, Références et cochez Contrôle d'édition des références.

4. Vous pouvez modifier les noms et les légendes des champs. Les noms sont utilisés dans le code Excel VBA. Les légendes sont celles qui apparaissent sur votre écran. C'est une bonne pratique de changer les noms des contrôles, mais ce n'est pas nécessaire ici car nous n'avons que quelques contrôles dans cet exemple. Pour modifier le libellé du formulaire utilisateur, l'étiquette et les boutons de commande, cliquez sur Affichage, Fenêtre Propriétés et cliquez sur chaque contrôle.

5. Pour afficher l'Userform, placez un bouton de commande sur votre feuille de calcul et ajoutez la ligne de code suivante :

Private Sub CommandButton1_Click()
UserForm1.Show
Fin du sous-marin

Nous allons maintenant créer le Sub UserForm_Initialize. Lorsque vous utilisez la méthode Show pour le Userform, ce sous-programme sera automatiquement exécuté.

6. Ouvrez l'éditeur Visual Basic.

7. Dans l'Explorateur de projets, cliquez avec le bouton droit sur UserForm1 et 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
Fin du sous-marin

Explication : la première ligne de code change 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 en cours et l'affiche dans le champ RefEdit.

Nous avons maintenant créé la première partie du Userform. Bien que cela ait déjà l'air soigné, rien ne se passera encore lorsque nous cliquerons sur les boutons de commande du formulaire utilisateur.

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

11. Double-cliquez sur le bouton Aller.

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
Définir rng = Range(addr)
minimum = WorksheetFunction.Min(rng)
Pour chaque cellule dans rng
Si cell.Value = minimum Alors cell.Font.Color = vbRed
Cellule suivante
Fin du sous-marin

Explication : tout d'abord, nous récupérons 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()
Décharge moi
Fin du sous-marin

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

15. Testez le formulaire utilisateur.

Résultat:

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave