Bien le bonjour à tous, bonne et heureuse année au passage !
Je fais appel à vos connaissances, est ce que quelqu'un à t'il réussi à résoudre le problème de la boucle sur des "Frame" ?
Je m'explique j'ai un userform avec plsieurs boutons d'options ( 26 Frames avec 9 boutons d'options par frame).
En ce qui concerne la boucle sur une Frame pas de soucis :
For Each C In Me.Frame1.Controls
If C.Value = True Then lign = Right(Left(C.Name, 7), 1)
Next C
MsgBox lign
Mais je bloque pour remplacer le "Frame1" ici en rouge par quelque chose qui pourrait boucler ..
Comme par exemple
Dim i as integer
Dim Frame as ... Controls (maybe ..)
For i = 1 to 26
Bonjour VLMX,
Essayer ceci, Excel nomme direct les controls avec un chiffre qui s'incrémente
For k = 1 To 9 'ou 26*9
if Me.Controls("OptionButton" & k).Value = then '........
Next
j'ai pris soin de renommer chacun de mes boutons d'options (CalqueL_K) avec L de 1à26 et K de 1à9
Je viens d'essayer ceci pour tester :
Dim x, k, l As Integer
x = 45
For l = 1 To 26
For k = 1 To 9 'ou 26*9 If Me.Controls("Calque" & l & "_" & k).Value = True Then
Feuil14.Cells(x, 2).Value = x
End If
x = x + 1
Next k
Next l
mais j'ai un message d'erreur : "Objet spécifié introuvable." sur la ligne en rouge.
Effectivement ca fonctionne !!
j'ai quelques bugs avec mon résultats mais celui ci boucle bien sur les Frames et les boutons options !
Merci beaucoup, par contre j'ai l'impression qu'il me renvoie plusieurs fois les même valeurs
Dim Frm As MSForms.Frame, OBn As MSForms.OptionButton, N As Long
For N = 1 To 26
Set Frm = Me("Frame" & N)
For Each OBn In Frm.Controls
If OBn.Value = True Then lign = OBn.Name
J'avais juste un bug ou excel ne me reconnaissais pas mon bloc "if" du coups il ne m’autorisait pas a mettre le "end if " et ça faisait surement n'importe quoi ...
Dim Frm As MSForms.Frame, OBn As MSForms.OptionButton, N As Long
For N = 1 To 26
Set Frm = Me("Frame" & N)
For Each OBn In Frm.Controls
If OBn.Value = True Then
lign = OBn.Name
MsgBox lign
End If
Next OBn, N