Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Plusieurs checkbox avec combobox

4 réponses
Avatar
Denys
Bonjour =E0 tous,

Sur un Userform j'ai plusieurs checkbox (21 en fait) et =E0 c=F4t=E9 de
chacun il y a un combobox.

=C0 la gauche des checkbox il y a le nom d'un produit dans un "label".
Si l'usager choisit le produit en cliquant sur checkbox, il doit
choisir le pourcentage dans le combobox correspondant.

Jusque-l=E0, =E7a va. Cependant lorsque je veux inscrire les produits
choisis sur une feuille Excel, j'ai un probl=E8me. Comment dire =E0 Excel
de n'=E9crire que le nom des produits dont le checkbox =3D vrai en
partant de C5 et ainsi de suite..... En D5 on inscrirait le pourcentage
choisi par le combobox....

En fait, si le produit A est choisi, il ira en C5... Si c'est le
produit F qui est choisi le premier (donc A,B,C,D & E ont =E9t=E9s
ignor=E9s) alors c'est lui qui ira en C5....

Auriez-vous une id=E9e ?=20

Merci

Denys

4 réponses

Avatar
MichDenis
Je ne suis pas sûr d'avoir compris ta demande ....

Il est présumé que tes controls Combobox et Checkbox
ont des index de 1 à 21 et qu'à chaque index de chaque chekbox
correspond un index de la colllection "Combobox"

Essaie ceci :
'-------------------------
Private Sub CommandButton1_Click()

Dim Lig As Long, A As Integer
With Worksheets("Feuil1") 'Nom à adapter
Lig = .Range("C5:X65536").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row + 1

For A = 1 To 21 ' Nombre de checkbox
Select Case Me.Controls("CheckBox" & A).Value
Case Is = True
.Cells(Lig, 2 + A) = Me.Controls("Combobox" & A).Value
End Select
Next
End With

End Sub
'-------------------------



"Denys" a écrit dans le message de news:

Bonjour à tous,

Sur un Userform j'ai plusieurs checkbox (21 en fait) et à côté de
chacun il y a un combobox.

À la gauche des checkbox il y a le nom d'un produit dans un "label".
Si l'usager choisit le produit en cliquant sur checkbox, il doit
choisir le pourcentage dans le combobox correspondant.

Jusque-là, ça va. Cependant lorsque je veux inscrire les produits
choisis sur une feuille Excel, j'ai un problème. Comment dire à Excel
de n'écrire que le nom des produits dont le checkbox = vrai en
partant de C5 et ainsi de suite..... En D5 on inscrirait le pourcentage
choisi par le combobox....

En fait, si le produit A est choisi, il ira en C5... Si c'est le
produit F qui est choisi le premier (donc A,B,C,D & E ont étés
ignorés) alors c'est lui qui ira en C5....

Auriez-vous une idée ?

Merci

Denys
Avatar
Denys
Bonjour Denis,

Ce que je veux dire c,est que sur le Userform ça va un peu comme suit:

Produit A Checkbox1 Combobox1
ProduitB Checkbox2 Combobox2
ProduitC Checkbox3 Combobox3
ProduitD Checkbox4 Combobox4

Si tu choisis le Produit A, alors tu cliques sur le checkbox1 et tu
choisis le pourcentage dans le combobox1.

Tu choisis autant de produits que tu veux (jusqu'à 21) possibles.

Comme je ne voulais pas dire que le produit A va à C5, B à C6 etc....
je souhaites plutôt que le premier produit choisi aille en C5 peu
importe que ce soit le produit A ou le produit K.

Bien sûr les produits sont en ordre... je vais donc y aller avec ce
que tu me proposes... Si j'ai des problèmes, je reviens...

Merci et bonne journée

Denys







Je ne suis pas sûr d'avoir compris ta demande ....

Il est présumé que tes controls Combobox et Checkbox
ont des index de 1 à 21 et qu'à chaque index de chaque chekbox
correspond un index de la colllection "Combobox"

Essaie ceci :
'-------------------------
Private Sub CommandButton1_Click()

Dim Lig As Long, A As Integer
With Worksheets("Feuil1") 'Nom à adapter
Lig = .Range("C5:X65536").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row + 1

For A = 1 To 21 ' Nombre de checkbox
Select Case Me.Controls("CheckBox" & A).Value
Case Is = True
.Cells(Lig, 2 + A) = Me.Controls("Combobox" & A).Value
End Select
Next
End With

End Sub
'-------------------------




Avatar
MichDenis
et ceci :


Si j'ai compris, tu auras besoin d'une petite modification...
:(utilisation d'une variable x pour compter le déplacement
d'une colonne à l'autre ....

'-------------------------
Private Sub CommandButton1_Click()

Dim Lig As Long, A As Integer, x As integer
With Worksheets("Feuil1") 'Nom à adapter
Lig = .Range("C5:X65536").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row + 1
x=3
For A = 1 To 21 ' Nombre de checkbox
Select Case Me.Controls("CheckBox" & A).Value
Case Is = True
x=x+1
.Cells(Lig, x) = Me.Controls("Combobox" & A).Value
End Select
Next
End With

End Sub




"Denys" a écrit dans le message de news:

Bonjour Denis,

Ce que je veux dire c,est que sur le Userform ça va un peu comme suit:

Produit A Checkbox1 Combobox1
ProduitB Checkbox2 Combobox2
ProduitC Checkbox3 Combobox3
ProduitD Checkbox4 Combobox4

Si tu choisis le Produit A, alors tu cliques sur le checkbox1 et tu
choisis le pourcentage dans le combobox1.

Tu choisis autant de produits que tu veux (jusqu'à 21) possibles.

Comme je ne voulais pas dire que le produit A va à C5, B à C6 etc....
je souhaites plutôt que le premier produit choisi aille en C5 peu
importe que ce soit le produit A ou le produit K.

Bien sûr les produits sont en ordre... je vais donc y aller avec ce
que tu me proposes... Si j'ai des problèmes, je reviens...

Merci et bonne journée

Denys







Je ne suis pas sûr d'avoir compris ta demande ....

Il est présumé que tes controls Combobox et Checkbox
ont des index de 1 à 21 et qu'à chaque index de chaque chekbox
correspond un index de la colllection "Combobox"

Essaie ceci :
'-------------------------
Private Sub CommandButton1_Click()

Dim Lig As Long, A As Integer
With Worksheets("Feuil1") 'Nom à adapter
Lig = .Range("C5:X65536").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row + 1

For A = 1 To 21 ' Nombre de checkbox
Select Case Me.Controls("CheckBox" & A).Value
Case Is = True
.Cells(Lig, 2 + A) = Me.Controls("Combobox" & A).Value
End Select
Next
End With

End Sub
'-------------------------




Avatar
Denys
Encore une fois,

Merci infiniment Denis..

Bonne fin de journée

Denys