Bonjour,
merci beaucoup pour ton aide Steelson!
Le format ne me convient pas tout à fait comme je voulais une barre de recherche qui affiche sous forme de liste déroulante (directement en-dessous de la cellule) les résultats de la recherche saisie.
Voir capture d'écran: lorsque je rentre S par exemple dans la cellule de recherche, s'affiche seulement les noms commençant par S. Et si je rentre rien dans la cellule de recherche alors ne s'affiche rien.
Puis je fais le choix de ma recherche et s'affiche les informations rattachés.
Néanmoins ta macro fonctionne et je t'en remercie!
Petite question: si ma liste de référence des métiers sous l'onglet 'Nomenclature' est modifié, s'allonge ou se rétréci, quels sont les modifications que je dois apporter à la macro (quelles lignes sont à modifier)?
Je te remercie d'avance!!
Private Sub UserForm_Initialize()
With ListBox1
.ColumnCount = 5
.ColumnWidths = "40;140;100;100"
End With
Me.ListBox1.List = Range("Tableau1[[Eligibilité]:[Libellé]]").Value
End Sub
Private Sub TextBox1_Change()
Me.ListBox1.Clear
i = 0
For Each c In Application.Index(Range("Tableau1[[Eligibilité]:[Libellé]]"), , 4)
If UCase(c) Like "*" & UCase(Me.TextBox1) & "*" Then
Me.ListBox1.AddItem
Me.ListBox1.List(i, 0) = c.Offset(0, -3).Value
Me.ListBox1.List(i, 1) = c.Offset(0, -2).Value
Me.ListBox1.List(i, 2) = c.Offset(0, -1).Value
Me.ListBox1.List(i, 3) = c.Offset(0, 0).Value
i = i + 1
End If
Next c
End Sub
Private Sub CommandButton1_Click()
flag = True
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
flag = False
End If
Next i
If flag Then
MsgBox "Choisir un item !"
Exit Sub
End If
ligne = 4
Range("B" & ligne).Value = Me.ListBox1.Column(3)
Range("C" & ligne).Value = Me.ListBox1.Column(1)
Range("D" & ligne).Value = Me.ListBox1.Column(2)
Range("E" & ligne).Value = Me.ListBox1.Column(0)
Me.Hide
End Sub