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 + F11pour ouvrir l’éditeur VBA dans Excel.
2. Insérer un UserForm :
- Dans l’éditeur VBA, allez dans
Insertion>UserFormpour 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é
SmallChangeest 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é
LargeChangepermet 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
F5pour 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.