Création de Spin Buttons dans un UserForm, Excel VBA
Un SpinButton est un contrôle qui permet à l’utilisateur d’incrémenter ou de décrémenter une valeur à l’aide de flèches (haut ou bas). Il est souvent utilisé lorsqu’un utilisateur doit sélectionner un nombre dans une plage spécifique.
Étapes pour créer un SpinButton dans un UserForm :
1. Ouvrir l’éditeur VBA :
- Appuyez sur
Alt + F11
pour ouvrir l’éditeur VBA dans Excel.
2. Insérer un UserForm :
- Dans l’éditeur VBA, allez dans
Insertion
>UserForm
pour insérer un nouveau formulaire.
3. Ajouter un contrôle SpinButton :
- Dans la boîte à outils (généralement visible sur le côté gauche), cliquez sur le contrôle SpinButton et placez-le sur le UserForm.
4. Ajouter des Labels ou TextBoxes pour afficher les valeurs :
- Pour afficher la valeur actuelle, vous pouvez ajouter un contrôle Label ou TextBox. Cela permettra à l’utilisateur de voir la valeur sélectionnée via le SpinButton.
5. Définir les propriétés :
- Sélectionnez le SpinButton et dans la fenêtre des propriétés, vous pouvez définir plusieurs propriétés essentielles comme :
- Min : La valeur minimale du SpinButton (par exemple, 1).
- Max : La valeur maximale du SpinButton (par exemple, 10).
- SmallChange : La valeur d’incrément pour chaque clic (par exemple, 1).
- LargeChange : La valeur d’incrément pour un plus grand changement (par exemple, 5).
- LinkedCell : Si vous voulez lier directement le SpinButton à une cellule Excel, vous pouvez utiliser cette propriété.
6. Écrire le code : Voici un exemple détaillé de code qui gère l’interaction entre le SpinButton et un TextBox.
Exemple de Code VBA :
1. Créer le UserForm avec les contrôles :
Dans votre UserForm, placez :
- Un SpinButton (nommé
SpinButton1
). - Un TextBox (nommé
TextBox1
) pour afficher la valeur.
2. Ajouter le code : Maintenant, ajoutez le code suivant dans la fenêtre de code de votre UserForm.
Private Sub UserForm_Initialize() ' Définir les propriétés initiales du SpinButton SpinButton1.Min = 1 ' Valeur minimale SpinButton1.Max = 10 ' Valeur maximale SpinButton1.SmallChange = 1 ' Valeur d'incrément pour chaque clic SpinButton1.LargeChange = 2 ' Valeur d'incrément pour un grand changement TextBox1.Value = SpinButton1.Value ' Initialiser le TextBox avec la valeur du SpinButton End Sub Private Sub SpinButton1_Change() ' Mettre à jour le TextBox lorsque la valeur du SpinButton change TextBox1.Value = SpinButton1.Value End Sub
Explication du Code :
1. UserForm_Initialize() :
- Ce code s’exécute lorsque le UserForm est initialisé (ouvert).
- Il définit les valeurs minimales (
Min
) et maximales (Max
) pour le SpinButton. Ces valeurs peuvent être ajustées selon vos besoins. - La propriété
SmallChange
est définie à 1, ce qui signifie qu’à chaque clic du SpinButton, la valeur sera incrémentée ou décrémentée de 1. Si vous souhaitez un incrément plus grand, vous pouvez augmenter cette valeur. - La propriété
LargeChange
permet un incrément plus grand, souvent utilisé lorsque l’utilisateur maintient le bouton appuyé. - Enfin, la valeur initiale du SpinButton est affichée dans le TextBox (
TextBox1.Value = SpinButton1.Value
).
2. SpinButton1_Change() :
- Cet événement est déclenché chaque fois que la valeur du SpinButton change (lorsque l’utilisateur clique sur les flèches haut ou bas).
- À chaque changement de valeur, la valeur du TextBox est mise à jour pour refléter la nouvelle valeur.
Exécution du Code :
- Après avoir saisi le code, appuyez sur
F5
pour exécuter le UserForm. - Vous pourrez interagir avec le SpinButton, et la valeur dans le TextBox se mettra à jour à chaque clic sur les flèches.
Conseils pour améliorer le UserForm :
- Vous pouvez lier le SpinButton à une cellule spécifique dans Excel en définissant la propriété LinkedCell dans la fenêtre des propriétés, ce qui mettra à jour la cellule dans la feuille Excel automatiquement.
- Utilisez d’autres contrôles, comme des ComboBoxes ou des OptionButtons, pour créer une interface plus sophistiquée où le SpinButton pourrait contrôler différents paramètres.
Conclusion :
Ce code fournit une implémentation simple pour créer un SpinButton dans un UserForm. En ajustant les propriétés et en ajoutant des événements comme Change
, vous pouvez créer une interface utilisateur interactive et personnalisable.