Autres Assigner des "Caption" a une serie de "OptionButton"

Marcham

XLDnaute Junior
Mon appli : excel 2007

Bonjour,
Imaginez un userform tout simple. Il contient un bouton valider et un Frame avec X OptionButton
Chaque OptionButton s'appelle (Name) PrendreChoix1, PrendreChoix2 et ainsi de suite jusqu'à PrendreChoix8.
A chaque OptionButton je voudrais lui assigner un "Caption" qui est stoké dans la 1er colonne d'un tableau à 2 dimensions.
Concrètement : Le tableau s'appelle : Choix et il contient les mots (exemple)
Choix(0,0) = Le 1er choix, Choix(0,1) une valeur
Choix(1,0)=Le 2eme choix, Choix(1,1) une autre valeur
Choix(2,0)=Le 3eme choix, Choix(2,1) encore une autre valeur
Ainsi de suite
Voici ce que je pourrais faire (car ça marche) :
Private Sub UserForm_Initialize()
Me.PrendreChoix1.Caption = Choix(0, 0)
Me.PrendreChoix2.Caption = Choix(1, 0)
Me.PrendreChoix3.Caption = Choix(2, 0)
.......................
End Sub
Ainsi chaque bouton de choix s'appelle alors : "Le 1er choix" et en suivant "Le 2eme choix" et ........patati et patata

Voici ce que je voudrais faire mais je n'y arrive pas
Private Sub UserForm_Initialize()
Dim i as integer
For i = 0 to 10 'Imaginons que j'ai 10 boutons de choix
Me.PrendreChoix & i+1.Caption = Choix(i, 0)
Next i
End Sub

C'est sûr que je n'ai pas entrer les choses comme je les ai écrient ici mais c'est pour l'explication.

J'ai essayé un tas de truc et voici ma dernière trouvaille qui ne fonctionne pas, c'est évident
Private Sub UserForm_Initialize()
Dim i As Integer
Dim CTRL As Controls
For Each CTRL In Me.Frame_colonne 'mon frame s'appelle ainsi
CTRL.Caption = Choix(i, 0)
i = i + 1
Next
End Sub

Oui, c'est vrai j'ai abandonné l'utilisation d'une boucle For .... Next mais peut-être à tort.

J’apprécierai beaucoup quelques aides de votre part en sachant que je ne suis pas un expert (même pas amateur des fois)
Merci d'avance - Marc
 

patricktoulon

XLDnaute Barbatruc
bonsoir
ben a vrai dire ton mécanisme suscite des question
nommer 8 controls ou lui attribuer un texte a sa caption n'est en soit pas tres compliqué

reste a savoir si cette variable tableau doit te servir plus tard ou pas
si elle ne te sert plus après on s'attaque aux controls eux mêmes directement
VB:
Private Sub UserForm_Initialize()
    Dim i As Integer
    For i = 0 To 7
        Me.Controls("PrendreChoix" & i + 1).Caption = "Mon Choix " & i + 1
    Next i

End Sub
 

Marcham

XLDnaute Junior
Patrick, excuse moi de ne pas être compliqué, je te jure que je ne l'ai pas fait exprès.
Quant à l'idée d'attaquer directement les controls, c'est ce que je fais, mais tant que je ne maitrisais pas l'utilisation des useforms, je préférais séparer les diverses actions.
Merci à toi, ainsi qu'à xulon qui me parle d'un truc bizarre, le Scripting Dictionnary (alors ça, ça doit faire mal !!!!).
 

xUpsilon

XLDnaute Accro
Les Scripting Dictionary sont simplement un peu comme des dictionnaires à 2 colonnes, qui te permettent de faire correspondre une clé et une valeur. Ainsi, imaginons que tu as 10000 matricules et une note par matricule, un Scripting Dictionary devient très puissant car tout est trié par clé (matricule), qui est accessible directement en tant qu'argument, donc on n'a pas besoin de chercher où est cet argument dans la liste ! Bref c'est un outil très puissant pour les grandes bases de données ;)

Bonne continuation
 

Discussions similaires

Réponses
3
Affichages
559

Statistiques des forums

Discussions
312 084
Messages
2 085 192
Membres
102 809
dernier inscrit
Sandrine83