Boucle Frame dans userform résolu !

  • Initiateur de la discussion Initiateur de la discussion VLMX
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

VLMX

XLDnaute Nouveau
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

Frame.Name = "Frame" & i

Mais cela ne fonctionne pas ...
Merci d'avance !
 
Bonjour Bruno,

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.

Valentin
 
Bonsoir Dranreb,

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

MsgBox lign
Next OBn, N
 
Et non finalement ca marche parfaitement !

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

Merci beaucoup !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
390
Réponses
8
Affichages
1 K
Retour