XL 2016 [Userform] Recalculer un score à chaque clic sur bouton option

F22Raptor

XLDnaute Impliqué
Bonjour à tous,
J'ai en tête l'idée d'un userform avec des boutons d'option (une trentaine) dont les captions sont des chiffres (un score de 0 à 5).
Et une zone de texte, dans laquelle apparaîtrait le résultat d'un calcul.

L'idée est que la zone affiche le total des scores.

Pour que le calcul s'effectue en temps réel, il faudrait donc que j'affecte à chaque bouton d'option un événement "OptionButton1_Click".
Et donc c'est lourdingue avec 30 boutons !

Il y aurait selon vous un événement générique "pour tout changement sur le userform" qui permette de lancer le calcul de la somme des scores, plutôt que 30 événements ?

(désolé, pas de fichier, car c'est pour l'instant uniquement une idée qui traîne dans un coin de ma tête)
 

job75

XLDnaute Barbatruc
Bonjour F22Raptor,

Voyez le fichier joint, il faut utiliser un module de classe, j'y ai mis ce code :
VB:
Public WithEvents OB As MSForms.OptionButton

Private Sub OB_Click()
MsgBox "OptionButton n° " & OB.Caption
End Sub
La classe est initialisée dans Module1 :
VB:
Public OB() As New Classe1

Sub USF()
Dim c As Control, n
With UserForm1
    For Each c In .Controls
        If TypeName(c) = "OptionButton" Then
            ReDim Preserve OB(n)
            Set OB(n).OB = c
            n = n + 1
        End If
    Next
    .Show
End With
End Sub
A+
 

Pièces jointes

  • USF(1).xlsm
    26.3 KB · Affichages: 11

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 902
Membres
101 834
dernier inscrit
Jeremy06510