re
je vais repondre a la qst...1 (variable)
quand tu ecris n'importe quel variables de cette facon
Dim C1, C2, C3, C4, C5, C6, C7, C8 As Integer
seulement la derniere dans ton cas est integer les autres variant par defaut
on devrait ecrire
Dim C1 As Integer, C2 As Integer, C3 As Integer ect...
entre autre Integer plus utilise on declare directement en Long
il faut comprendre que C1, C2 ECT... sont des controls de l'userform ou ME
on ne les declare pas dim C1 as combobox ect... sert a rien
For i = 1 To 8: Me("C" & i).List = Feuil2.Range("a12:a122").Value: Next i
on peut ecrire
For i = 1 To 8: Me.Controls("C" & i).List = Feuil2.Range("a12:a122").Value: Next i
ou
For i = 1 To 8: Controls("C" & i).List = Feuil2.Range("a12:a122").Value: Next i
dans certains cas on peut le faire dim c as controls
exemple
Dim c As Control
For Each c In Controls
If TypeName(c) = "ComboBox" Then MsgBox c.Name
Next c
Dim c As Control
For Each c In Controls
If TypeOf c Is MSForms.ComboBox Then MsgBox c.Name
Next c
pour repondre a la qst2... beaucoup de mal a decoder ce que tu veus faire exactement
une approche quand meme sans beaucoup de conviction j'ai modifier le frame pour plus de simplicite
apres on verra