VBA - Bouton d'option qui modifie un label ?

Int0x

XLDnaute Occasionnel
Bonjour le forum,

Petite question qui semble assez simple pour les pros que vous êtes ! :rolleyes:

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 ?
 
Dernière édition:

youky(BJ)

XLDnaute Barbatruc
Re : VBA - Bouton d'option qui modifie un label ?

Salut bien,
Voici un fichier tout simple pour l'exemple.
Il est aussi possible de passer par un module de classe plus complexe à faire
Bruno
 

Pièces jointes

  • optionlabel.xls
    41 KB · Affichages: 55

Si...

XLDnaute Barbatruc
Re : VBA - Bouton d'option qui modifie un label ?

salut

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 ;)
 

Pièces jointes

  • ListBoxOption.xls
    38.5 KB · Affichages: 62
Dernière édition:

laetitia90

XLDnaute Barbatruc
Re : VBA - Bouton d'option qui modifie un label ?

bonjour tous :)
une autre facon de l'ecrire



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...

suffisant
 

Pièces jointes

  • class1.xls
    88.5 KB · Affichages: 50
  • class1.xls
    88.5 KB · Affichages: 53
  • class1.xls
    88.5 KB · Affichages: 56
Dernière édition:

Statistiques des forums

Discussions
312 109
Messages
2 085 383
Membres
102 878
dernier inscrit
asmaa