Petite question qui semble assez simple pour les pros que vous êtes !
J'ai créé une UserForm, dans lequel j'ai un cadre (frame1) contenant 4 boutons d'option (OptionButton de 1 à 4).
Je souhaite qu'en choisissant l'un des boutons, le Label38 soit modifié.
Par exemple:
- si je choisis le bouton 1, alors label 38 = 15
- si je choisis le bouton 2, alors label 38 = 98
etc...
Pour être complet, j'ai 7-8 cadres, avec 4 choix à chaque fois, qui doivent alimenter 8 labels.
A la fin, j'aurais un label qui fait la somme de ces 8 labels.
Par avance merci pour vos idées / retours,
Int0x
PS: cela semble fonctionner avec
Code:
Private Sub OptionButton1_Click()
If OptionButton1.Value = True Then Label38.Caption = 0
End Sub
Private Sub OptionButton2_Click()
If OptionButton2.Value = True Then Label38 = 5
End Sub
Private Sub OptionButton3_Click()
If OptionButton3.Value = True Then Label38.Caption = 10
End Sub
Private Sub OptionButton4_Click()
If OptionButton4.Value = True Then Label38.Caption = 50
End Sub
Mais je trouve ça indigeste...n'y a-t-il pas une façon plus propre & simple ?
Si... tu es mal à l'aise avec les Modules de Classe, tu peux simplifier en remplaçant tes "Boutons d'option" par des contrôles "ListBox" avec options.
Un exemple Si... joint. Merci youky(Bj) pour le fichier
ps petite correction dans la classe ecrire comme cela
Code:
With cbx
.Parent.Parent.Controls("label" & Right(.Parent.Name, 1)).Caption = cbx.Tag
End With
With UserForm1
.Label9 = 0
For i = 1 To 8
If .Controls("label" & i) <> "" Then x = x + CDbl(.Controls("label" & i))
Next
.Label9 = x
End With
trop vite fait autrement calcul pas bon...
eventuellement dans initialize user..
Code:
For Each c In Controls
If TypeName(c) = "OptionButton" Then
ect...