Médiaforma

VBA Excel – Des SpinButton dans une boîte de dialogue personnalisée

Print Friendly, PDF & Email

Le contrôle SpinButton (toupie) permet d’incrémenter ou de décrémenter une valeur d’un certain pas entre une valeur minimale et une valeur maximale.

Pour insérer un contrôle SpinButton, sélectionnez l’outil Toupie dans la boîte à outils, puis tracez le contour voulu dans la boîte de dialogue personnalisée. Selon votre tracé, le contrôle sera horizontal ou vertical :

Vous utiliserez essentiellement les propriétés suivantes dans un SpinButton :

Propriété Signification
Min Valeur minimale
Max Valeur maximale
SmallChange Pas de progression

A titre d’exemple, nous allons définir une boîte de dialogue personnalisée qui contient un contrôle MultiPage composé de deux pages : une pour définir les caractéristiques du SpinButton et une autre pour utiliser le SpinButton :

La mise en place des contrôles n’offre aucune difficulté.

Pour faire fonctionner cette boîte de dialogue personnalisée, nous allons écrire quelques lignes de code VBA.

Au clic sur le bouton de la première page :

  • Les valeurs saisies dans les trois zones de texte sont affectées aux propriétés Min, Max et SmallChange du SpinButton.
  • Le texte “Valeur actuelle : 0” est affiché dans le label de la deuxième page.
  • La boîte de dialogue bascule automatiquement sur la deuxième page.
Private Sub CommandButton1_Click()

  With SpinButton1

    .Min = TextBox1.Value

    .Max = TextBox2.Value

    .SmallChange = TextBox3.Value

  End With

  Label4.Caption = "Valeur actuelle : 0"

  MultiPage1.Value = 1 'Active la deuxième page

End Sub

Pour compléter la prise en compte du clic sur le bouton, il reste à prendre en compte le clic sur les boutons du SpinButton. La valeur du SpinButton est alors automatiquement modifiée. Il suffit de l’afficher dans le label :

Private Sub SpinButton1_Change()

  Label4.Caption = "Valeur actuelle : " & SpinButton1.Value

End Sub
Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

No comments yet.