Private Sub filtre_Change()
Dim Recherche As String
Dim Formations As Variant ' Tableau en mémoire des noms de formation
Dim i As Integer
Me.liste_formations.clear
'N = 0
'
' Première ligne du tableau qui commence en A1
With Sheets("MATRICE").Range("A1").CurrentRegion.Rows(1)
' Recueillir les formations se commençant à la troisième quatrième colonne
Formations = .Offset(, 3).Resize(, .Columns.Count - 3).Value
' créer le masque de recherche
Recherche = "*" & Trim(Me.filtre.Value)
' s'il contient autre chose que *
If Recherche <> "*" Then
'compléter le masque
Recherche = LCase(Recherche) & "*"
' et comparer avec chaque valeur de la deuxième dimension
' du tableau en mémoire des formations
For i = 1 To UBound(Formations, 2)
If LCase(Formations(1, i)) Like Recherche Then
Me.liste_formations.AddItem Formations(1, i)
End If
Next
Else
Me.liste_formations.List = Application.Transpose(Formations)
End If
End With
sortie:
End Sub