Re,
Rajoutes 2 combobox dans ton userform7 pour avoir l'exemple
Il existe 3 méthodes pour remplir une combobox ou une listbox. Voici ce que cela pourrait donner d'aprés ton exemple:=> à mettre dans l'évènement initialize de l'userform7
1 ére:additem
dim C as range 'on définit une variable C qui représente une cellule
With sheets("planning 1")'on indique sur quelle feuille travailler
For Each C In .Range("E90:E100")
If Not IsEmpty(C) Then ComboBox2.AddItem C.Value
Next C
End With
2 eme: Rowsource, attention avec celle ci il ne faut pas d'espace dans le nom de la feuille.il faut renolmmer la feuille "planning1"
With sheets("planning1")
ComboBox1.RowSource = .Name & "!" & .Range("E90:E100").Address
end With
'ou si tu préfères
ComboBox1.RowSource = "planning1!$Es90:$E$100"
3 eme par LIst: par un tableau
' tu n'es pas obligé(e) de redéfinir les ColumnCount et ColumnWidths à cahque fois mais comme dans l'exemple tu as fourni ces propriétes ont été modifiées je remets leur valeur par défaut
With ListBox1
.ColumnCount = 1 '
.ColumnWidths = ""
.List = Sheets(1).Range("E90:E100").Value
end With
Tu vas avoir des 1 ligne sur 2 de vides puisque tu as des cellules fusionnées=> voici une fonction que j'utilise régulièrement pour éviter les vides:
Function RecupV(T)
Dim I&, J&, Tmp()
For I = 1 To UBound(T, 1)
If Not IsEmpty(T(I, 1)) Then
ReDim Preserve Tmp(J)
Tmp(J) = T(I, 1)
J = J + 1
End If
Next I
RecupV = Tmp
End Function
cela devient:
.List = RecupV(Sheets(1).Range("E90:E100").Value)
Voilà j'espère que ce sera un peu plus clair pour toi, choisis pour la méthode qui te convient le mieux.
A+++