Créer un curseur (slider) dans un formulaire utilisateur (UserForm), Excel VBA
Voici une explication détaillée sur la façon de créer un curseur (slider) dans un formulaire utilisateur (UserForm) avec VBA dans Excel.
Étapes :
1. Configurer le UserForm :
- Ouvrez l’éditeur VBA en appuyant sur
Alt + F11. - Dans l’éditeur VBA, cliquez sur
Insertiondans le menu et choisissezUserFormpour créer un nouveau formulaire. - Ensuite, faites un clic droit sur le UserForm et sélectionnez
Propriétés. Changez la propriétéNameen quelque chose commefrmSlider.
2. Ajouter un contrôle de curseur (Slider) :
- Si vous ne voyez pas la bibliothèque
Microsoft Forms 2.0 Object Library, vous devez l’activer. Pour ce faire :
1. Dans l’éditeur VBA, allez dans Outils > Références.
2. Faites défiler vers le bas et cochez Microsoft Forms 2.0 Object Library.
3. Cliquez sur OK.
- Maintenant, sur le UserForm, ouvrez la boîte à outils (si elle n’est pas déjà ouverte, allez dans
Affichage>Boîte à outils), puis cliquez sur le contrôleScrollbar(cela représente votre curseur). - Faites glisser le
Scrollbarsur le UserForm. Dans la fenêtre des propriétés, changez son nom ensliderControl.
3. Personnaliser le contrôle Slider :
- Vous pouvez ajuster les propriétés du slider pour qu’il corresponde à vos besoins. Voici quelques propriétés utiles pour le contrôle
Scrollbar:
1. Min : La valeur minimale que le curseur peut représenter (par exemple, 1).
2. Max : La valeur maximale que le curseur peut représenter (par exemple, 100).
3. SmallChange : Le nombre de pas que le curseur fait lorsque vous cliquez sur les flèches du curseur (par exemple, 1).
4. LargeChange : Le nombre de pas que le curseur fait lorsque vous cliquez sur la barre de défilement (par exemple, 10).
5. Value : La valeur actuelle du curseur.
4. Ajouter une étiquette pour afficher la valeur du curseur :
- Vous pouvez ajouter un contrôle
Labelsur le UserForm pour afficher la valeur actuelle du curseur. - Changez le nom du label en
lblSliderValue.
5. Écrire le code VBA :
- Maintenant, vous devez ajouter du code pour mettre à jour l’étiquette en fonction de la valeur du curseur et gérer toute autre fonctionnalité nécessaire.
Voici un exemple de code pour implémenter cela :
' Ce code va dans le UserForm
Private Sub UserForm_Initialize()
' Initialiser les propriétés du slider
sliderControl.Min = 1
sliderControl.Max = 100
sliderControl.SmallChange = 1
sliderControl.LargeChange = 10
sliderControl.Value = 50 ' Définir une valeur initiale
' Initialiser l'étiquette
lblSliderValue.Caption = "Valeur du curseur : " & sliderControl.Value
End Sub
' Ce code met à jour l'étiquette lorsque la valeur du curseur change
Private Sub sliderControl_Change()
' Mettre à jour l'étiquette avec la valeur actuelle du curseur
lblSliderValue.Caption = "Valeur du curseur : " & sliderControl.Value
End Sub
6. Exécuter le UserForm :
-
- Pour exécuter le UserForm, créez une procédure simple dans un module pour afficher le UserForm :
Sub ShowSliderForm()
frmSlider.Show
End Sub
- Exécutez cette procédure (
ShowSliderForm) en appuyant surF5ou manuellement depuis la fenêtreImmediatepour afficher le UserForm avec le curseur.
Explication du code :
UserForm_Initialize: Cette sous-routine est appelée lorsque le UserForm est chargé. Elle initialise les propriétés du curseur (par exemple, les valeurs minimales, maximales, la valeur initiale) et définit le texte de l’étiquette pour afficher la valeur initiale du curseur.sliderControl_Change: Cette sous-routine est déclenchée chaque fois que la valeur du curseur change. Elle met à jour l’étiquettelblSliderValuepour refléter la nouvelle valeur du curseur.ShowSliderForm: Une procédure distincte pour afficher le UserForm contenant le curseur.
Améliorations possibles :
Vous pouvez améliorer ce curseur en ajoutant des fonctionnalités supplémentaires, telles que :
- Utiliser le curseur pour ajuster dynamiquement d’autres éléments (comme des valeurs de cellules, des séries de graphiques ou des formats).
- Implémenter plusieurs curseurs pour contrôler différents paramètres.
- Personnaliser l’apparence du UserForm et des contrôles.
Cela vous donne un curseur de base, mais totalement fonctionnel, dans Excel VBA avec un contrôle détaillé.