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
Insertion
dans le menu et choisissezUserForm
pour créer un nouveau formulaire. - Ensuite, faites un clic droit sur le UserForm et sélectionnez
Propriétés
. Changez la propriétéName
en 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
Scrollbar
sur 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
Label
sur 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 surF5
ou manuellement depuis la fenêtreImmediate
pour 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’étiquettelblSliderValue
pour 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é.