MultiPage - checkBox- Boucle : Vba
Résolu/Fermé
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
-
3 mars 2018 à 04:49
lanetmel Messages postés 200 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 15 mars 2018 - 4 mars 2018 à 18:28
lanetmel Messages postés 200 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 15 mars 2018 - 4 mars 2018 à 18:28
A voir également:
- MultiPage - checkBox- Boucle : Vba
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Problème xiaomi redmi note 8t s'allume et s'éteint vibre - Forum Xiaomi
- Tv orange chargement en boucle ✓ - Forum TV & Vidéo
- Vba checkbox value ✓ - Forum Excel
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
2 réponses
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
Modifié le 3 mars 2018 à 08:37
Modifié le 3 mars 2018 à 08:37
Bonjour,
voir ici pour la boucle sur checkbox:
https://forums.commentcamarche.net/forum/affich-35018919-vba-imprimer-sauf-si-les-lignes-sont-masquees#7
Ce qui donne pour ton cas:
je te laisse faire le reste, il suffit de mettre ton action à la place de:
voilà
voir ici pour la boucle sur checkbox:
https://forums.commentcamarche.net/forum/affich-35018919-vba-imprimer-sauf-si-les-lignes-sont-masquees#7
Ce qui donne pour ton cas:
Dim Ctrl As Control Dim Ctrl_2 As Control 'Boucle sur la collection de contrôles For Each Ctrl_2 In Me.Controls If TypeOf Ctrl_2 Is MSForms.MultiPage Then MsgBox Ctrl_2.Name For Each Ctrl In Me.Controls If TypeOf Ctrl Is MSForms.CheckBox Then If Ctrl.Object.Value = True Then MsgBox Ctrl.Caption End If End If Next Ctrl End If Next Ctrl_2
je te laisse faire le reste, il suffit de mettre ton action à la place de:
MsgBox Ctrl.Caption
voilà
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
3 mars 2018 à 20:52
3 mars 2018 à 20:52
il semble pas déceler les mutlipages :(
d'accord avec toi, j'ai essayé cela:
et cela met des F partout, par contre le reste est conforme, la colonne G se remplie correctement!
d'accord avec toi, j'ai essayé cela:
Dim Ctrl As Control Dim Ctrl_2 As Control Dim i As Integer i = 13 'Boucle sur la collection de contrôles For Each Ctrl_2 In Me.Controls If TypeOf Ctrl_2 Is MSForms.MultiPage Then For Each Ctrl In Me.Controls If TypeOf Ctrl Is MSForms.CheckBox Then If Ctrl.Object.Value = True Then If MultiPage1.Pages(0).Name = "Page1" Then Sheets(TBOX_NOMCLIENT.Value).Range("E" & i) = "F" End If Sheets(TBOX_NOMCLIENT.Value).Range("G" & i) = Ctrl.Caption i = i + 1 End If End If Next Ctrl End If Next Ctrl_2
et cela met des F partout, par contre le reste est conforme, la colonne G se remplie correctement!
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
3 mars 2018 à 21:41
3 mars 2018 à 21:41
Bonjour
merci encore pour ton aide, je suis désolé mais j'ai encore un problème
la boucle ne s'arrête pas et ma colonne E donne toujours le dernier choix soit : T/S
même si ça me donne la bonne donnée dans la colonne G..J'essaie vraiment de trouver mais je ne comprends pas. Cela peut-il être à cause de ou sont placer les next Ctrl?
merci à l'avance
Sub produits()
Dim Ctrl As Control
Dim Ctrl_2 As Control
Dim i As Integer
i = 13
'Boucle sur la collection de contrôles
For Each Ctrl_2 In Me.Controls
If TypeOf Ctrl_2 Is MSForms.MultiPage Then
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.CheckBox Then
If Ctrl.Object.Value = True Then
If MultiPage1.Pages(0).Name = "Page1" Then
Sheets(TBOX_NOMCLIENT.Value).Range("E" & i) = "F"
End If
If MultiPage1.Pages(1).Name = "Page2" Then
Sheets(TBOX_NOMCLIENT.Value).Range("E" & i) = "S"
End If
If MultiPage1.Pages(2).Name = "Page3" Then
Sheets(TBOX_NOMCLIENT.Value).Range("E" & i) = "T/F"
End If
If MultiPage1.Pages(3).Name = "Page4" Then
Sheets(TBOX_NOMCLIENT.Value).Range("E" & i) = "T/S"
End If
End If
End If
Sheets(TBOX_NOMCLIENT.Value).Range("G" & i) = Ctrl.Caption
i = i + 1
End If
End If
Next Ctrl
End If
Next Ctrl_2
End Sub
merci encore pour ton aide, je suis désolé mais j'ai encore un problème
la boucle ne s'arrête pas et ma colonne E donne toujours le dernier choix soit : T/S
même si ça me donne la bonne donnée dans la colonne G..J'essaie vraiment de trouver mais je ne comprends pas. Cela peut-il être à cause de ou sont placer les next Ctrl?
merci à l'avance
Sub produits()
Dim Ctrl As Control
Dim Ctrl_2 As Control
Dim i As Integer
i = 13
'Boucle sur la collection de contrôles
For Each Ctrl_2 In Me.Controls
If TypeOf Ctrl_2 Is MSForms.MultiPage Then
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.CheckBox Then
If Ctrl.Object.Value = True Then
If MultiPage1.Pages(0).Name = "Page1" Then
Sheets(TBOX_NOMCLIENT.Value).Range("E" & i) = "F"
End If
If MultiPage1.Pages(1).Name = "Page2" Then
Sheets(TBOX_NOMCLIENT.Value).Range("E" & i) = "S"
End If
If MultiPage1.Pages(2).Name = "Page3" Then
Sheets(TBOX_NOMCLIENT.Value).Range("E" & i) = "T/F"
End If
If MultiPage1.Pages(3).Name = "Page4" Then
Sheets(TBOX_NOMCLIENT.Value).Range("E" & i) = "T/S"
End If
End If
End If
Sheets(TBOX_NOMCLIENT.Value).Range("G" & i) = Ctrl.Caption
i = i + 1
End If
End If
Next Ctrl
End If
Next Ctrl_2
End Sub
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
4 mars 2018 à 07:25
4 mars 2018 à 07:25
La boucle sur le multipage ne fonctionne pas. j'ai donc procédé autrement par le numéro des checkbox. Je viens juste de répondre à ce post. Je m'en suis donc servi:
https://forums.commentcamarche.net/forum/affich-35232189-test-fonction-si#5
ce qui donne:
Voilà c'est simple,
Bon Dimanche
@+ Le Pivert
https://forums.commentcamarche.net/forum/affich-35232189-test-fonction-si#5
ce qui donne:
'http://www.commentcamarche.net/forum/affich-35232189-test-fonction-si#p35237257 Dim Ctrl As Control Dim i As Integer Dim numero As Integer i = 13 If TBOX_NOMCLIENT.Text = "" Then Exit Sub 'Boucle sur la collection de contrôles For Each Ctrl In Me.Controls If TypeOf Ctrl Is MSForms.CheckBox Then If Ctrl.Object.Value = True Then numero = Replace(Ctrl.Name, "CheckBox", "") 'numero checkBox seul Select Case numero Case Is < 32 Sheets(TBOX_NOMCLIENT.Text).Range("E" & i) = "F" Case Is < 63 Sheets(TBOX_NOMCLIENT.Text).Range("E" & i) = "C" Case Is < 72 Sheets(TBOX_NOMCLIENT.Text).Range("E" & i) = "TF" Case Is < 85 Sheets(TBOX_NOMCLIENT.Text).Range("E" & i) = "TC" End Select Sheets(TBOX_NOMCLIENT.Text).Range("G" & i) = Ctrl.Caption i = i + 1 End If End If Next Ctrl
Voilà c'est simple,
Bon Dimanche
@+ Le Pivert
lanetmel
Messages postés
200
Date d'inscription
mercredi 24 août 2011
Statut
Membre
Dernière intervention
15 mars 2018
4
4 mars 2018 à 18:28
4 mars 2018 à 18:28
merci beaucoup! ça fonctionne parfaitement, c'est génial!!!
3 mars 2018 à 20:10
merci beaucoup pour ton aide, j'ai vraiment de la difficulté avec les boucles, voici ce que j'essaie qui ne fonctionne pas. Svp sois indulgent, j'essaie ;)
Sub produits()
Dim x, J As Integer
x = 13
Dim Ctrl As Control
Dim Ctrl_2 As Control
'Boucle sur la collection de contrôles
For Each Ctrl_2 In Me.Controls
If TypeOf Ctrl_2 Is MSForms.MultiPage Then
If Ctrl_2.Name = "FRAIS" Then
Cells(x, 1) = "F"
If Ctrl_2.Name = "CONGELÉ" Then
Cells(x, 5).Value = "S"
If Ctrl_2.Name = "TRANSFORMÉ_FRAIS" Then
Cells(x, 5).Value = "T/F"
If Ctrl_2.Name = "TRANSFORMÉ_CONGELÉ" Then
Cells(x, 5).Value = "T/S"
Sheets("transport DSTJ").Cells(J + 1, 1) = Sheets(i).Cells(x, 2)
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.CheckBox Then
If Ctrl.Object.Value = True Then
MsgBox Ctrl.Caption
End If
End If
Next Ctrl
End If
End If
End If
End If
End If
Next Ctrl_2
End Sub
il semble pas déceler les mutlipages :(