Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Boucles multiples d'un contenu de combobox [RESOLU]
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 !
[opinion personnelle]
Il est préférable d'expliquer le problème rencontré dans le message d'introduction de la discussion.
Cela permet:
1) d'identifier rapidement la question (sans devoir télécharger un fichier)
2) donc de savoir si on aura les compétences pour tenter de résoudre la question posée.
3) accessoirement de gagner du temps.
[/opinion personnelle]
effectivement j'aurais du expliquer mon probleme dans le post en premier lieu ce que je vais faire a présent:
je voudrais faire un nombre de copies "X" du contenu d'un combobox mais je ne parviens a en réaliser que 6 pour le moment ensuite. Il me faut trouver un moyen de faire une boucle sur le combobox pour que le "listindex" revienne au début.
de plus je voudrais que la premiere copie commence par la ligne selectionnée dans le combobox.
espérant avoir été suffisemment claire et je vous renouvelle mes excuses.
Vois si ton code revisité à ma sauce te convient (et surtout fait ce que tu veux qu'il fasse 😉 )
Code:
Private Sub UserForm_Initialize()
Dim cl As Control
ComboBox1.List = Array("S1", "S2", "S3", "S4", "S5", "S6"): ComboBox1.ListIndex = 0
For Each cl In Me.Controls
If TypeOf cl Is MSForms.TextBox Then cl.Object.Value = 0
Next cl
End Sub
Code:
Private Sub CommandButton1_Click() 'Simulation
Dim x, a, l&
Sheets("Feuil1").Range("A:D").Clear
If ComboBox1.ListIndex = -1 Then MsgBox ("Selectionnez une autre ligne.")
If ComboBox1.ListIndex > -1 Then
For a = 1 To 7
For x = 1 To TextBox0.Value 'nbre de semaine de contrat
With Sheets("Feuil1")
l = a + (8 * x - 7)
.Range(Cells(l, 1), Cells(l, 4)) = _
Array(ComboBox1.Value, "Tbx" & a, "Tbx" & (a + 7), Controls("ToggleButton" & a).Caption)
End With
Next x
Next a
End If
End Sub
merci de ta réponse, mon probleme est en partie résolu je voudrais néanmoins que dans la colonne "A" s'inscrive le contenu du combobox en rapport au nombre entré dans le textbox.
Ex:
si l'utilisateur inscrit "10" dans le textbox et selectionne "S5" dans le combobox, sur la feuille excel doit apparaitre de "A2 à A8" le texte "S5" puis de "A10 à A16" "S6" et enfin revenir à "S1" (c'est à dire listindex=0) de "A18 à A24" et ainsi de suite jusqu'a ce que le nombre de "BOUCLES" du textbox soit atteint.
En gros si je peux résumer ainsi le contenu du textbox correspond au nombre de boucle a effectuer dans le combobox
("S5","S6","S1","S2","S3","S4","S5","S6","S1","S2")
Espérant que cette explication te permette de me comprendre.
Private Sub CommandButton1_Click() 'Simulation
With Worksheets("Feuil1")
.Range("A:D").Clear
If ComboBox1.ListIndex = -1 Then MsgBox ("Selectionnez une autre ligne.")
If ComboBox1.ListIndex > -1 Then
XX = ComboBox1.ListIndex
For x = 1 To TextBox0.Value 'nbre de semaine de contrat
If XX > ComboBox1.ListCount - 1 Then XX = 0
ComboBox1.ListIndex = XX
For a = 1 To 7
.Cells(a + (8 * x - 7), 1) = ComboBox1.Value
.Cells(a + (8 * x - 7), 2) = "Tbx" & a
.Cells(a + (8 * x - 7), 3) = "Tbx" & (a + 7)
.Cells(a + (8 * x - 7), 4) = Controls("ToggleButton" & a).Caption
Next a
XX = XX + 1
Next x
End If
End With
End Sub
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.