Private Sub UserForm_Initialize()
Dim c As Range
Dim bAjout As Boolean
'Avec la combo qui contiendra les champs de recherche
With cbChampRecherche
'On créer Deux colonnes
.ColumnCount = 2
'On Cache la deuxième en lui donnant la valeur 0 comme largeur
'Les largeurs de colonnes sont passée en chaine de caractères
'séparées par des point-virgules.Valeurs exprimées en point (pt)
.ColumnWidths = ";0pt"
'On paramètre la colonne 1 comme colonne de référence
'celle qui affiche le nom
.BoundColumn = 1
'Tant qu'une cellule vide n'est pas trouvée dans la ligne 1
Set c = Sheets("proc").Cells(1, 1)
Do
'La variable bAjout permet de savoir si après évaluationdu
'numéro de colonne il faut le rajouter ou non à la combo
bAjout = False
Select Case c.Column
' ici les numéro unique de colonne à ajouter à la liste
Case 1, 2, 12, 16, 20, 24, 28: bAjout = True
'ici toutes les colonnes dont les numéro sont > à 36
Case Is > 36: bAjout = True
End Select
If bAjout Then
'On ajoute l'étiquette de colonne de la feuille
'Dans la première colonne de la combo
.AddItem c.Value
'Dans la deuxième on garde l'index ce la colonne de la feuille
'La numérotation des colonnes des combo commence à 0 =>1=la deuxième
.List(.ListCount - 1, 1) = c.Column
End If
Set c = c.Offset(, 1)
Loop While Not IsEmpty(c)
'On paramètre par défaut le champ de recherche sur le premier
If .ListCount > -1 Then .ListIndex = 0
End With
End Sub