Problème boucles Checkbox

Hello,

Je me permet de reposter car ma boucle que je pensais enfin fonctionnelle refait des siennes sans que je comprenne pourquoi

Voici le code :

For x = 20 To 45
    If Range("B14").Value <> "" Then
            Exit For
    Else
            Controls("CheckBox" & x).Value = True
            Range("B14").Value = Controls("Label" & x).Caption
            UserForm1("CheckBox" & x).Value = False
    End If
    If Range("B15").Value <> "" Then
            Exit For
    Else
            Controls("CheckBox" & x).Value = True
            Range("B15").Value = Controls("Label" & x).Caption
            UserForm1("CheckBox" & x).Value = False
    End If
    If Range("B16").Value <> "" Then
            Exit For
    Else
            Controls("CheckBox" & x).Value = True
            Range("B16").Value = Controls("Label" & x).Caption
            UserForm1("CheckBox" & x).Value = False
    End If
Next x

Problème, les 3 cellules prennent la valeur de mon Label20 qu'il soit coché ou non.

Merci de votre aide

Bonjour Xmastree, bonjour le forum,

Tu boucles de 20 a 45. Si B14 n'est pas vide tu sors de la boucle !... Donc après la première boucle, tu sortiras systématiquement puisque tu attribues une valeur à B14 dès la première boucle. Comme je n'ai aucune idée de ce que tu veux faire je ne peux te proposer un code fonctionnel.

Pas bien compris :

Controls("CheckBox" & x)

et

UserForm1("Checkbox") & x)

J'aurais plutôt écris :

UserForm1.Controls("CheckBox" & x)

Salut !

Pourquoi tu dis que j'affecte une valeur à B14 ?

La seule valeur qui est affectée est dans le else ?

Dans mon Userform_Initialization() j'ai ces 3 lignes d'ailleurs :

Range("B14") = ""

Range("B15") = ""

Range("B16") = ""

Donc je pense vraiment pas que je sorte de la boucle direct, d'autant plus que j'aurais rien dans mes cellules B15 / B16 si c'était le cas.

Controls("Checkbox" & x) = True vérifie que la Checkbox de rang x est bien cochée avant de poursuivre la boucle.

Tu as raison pour le Userform1(...), je savais qu'il y avait un problème de syntaxe pas pas comment le résoudre

Re,

Je ne t'ai pas dis que tu sortais direct mais tu sortiras après la première boucle !... Dès que tu auras attribué une valeur à B14, B15 ou B16. Fait tourner ton code pas à pas avec la touche [F8]...

Il est possible que je me trompe (on n'a qu'un bout de code, pas l'ensemble) , mais si tu veux qu'on comprenne et qu'on puisses t'aider efficacement, envoie le fichier et l'explication de ce que tu veux!

Re,

Donc je pense vraiment pas que je sorte de la boucle direct, d'autant plus que j'aurais rien dans mes cellules B15 / B16 si c'était le cas.

Je persiste. Fais tourner le code pas à pas...

En effet tu as raison je fais une boucle puis je sors du FOR. ( Je connaissais pas le F8 c'est cool )

Du coups mon problème est comme tu as dit que je sors de la boucle aprés la première, alors qu'en soi je veux juste passer au IF suivant ..

Et au niveau du code tu as tout ce qui conçerne mon problème je pense. En gros j'ai Label 20 à Label 45 et Checkbox 20 à Checkbox 45, et j'aimerais que les 3 premières checkbox cochées renvoient la valeur de leur Label respectif ( de i égal ) dans les cellules B14, 15 et 16.

Le premier problème étant cette sortie de boucle prématurée, le deuxième est selon moi que ma ligne

UserForm1.Controls("CheckBox" & x).Value = False

ne fonctionne pas puisque les cellules B15 et B16 affichent toujours la même valeur que B14, ce qui veut dire que la Checkbox ne se décoche pas comme j'ai voulu le faire dans cette ligne ..

Re,

je ne comprends vraiment pas ton code. Il semble que tu ne puisses cocher que 3 checkboxes sur 26 et dans ce cas là, il faut utiliser des OptionButtons avec des groupes différent. Mais, encore un fois, si tu ne daignes pas fournir le fichier on ne pourra pas t'aider...

Re,

Peut-être comme ça :

Dim X As byte
Dim I As Byte
X = 14
For I = 20 To 45
    If Me.Controls("Checkbox" & I).Value = True Then Cells(X, "B").Value = Me.Controls("Label" & I).Caption: X = X + 1
Next I

Bon, quoiqu'il en soit ton code marche

Merci à toi!

Rechercher des sujets similaires à "probleme boucles checkbox"