La MSDN explique ca:
FindItem, méthode, exemple
Dans cet exemple, un contrôle ListView est rempli avec le contenu de la table Publishers qui se trouve dans la base de données Biblio.mdb. Un contrôle ComboBox est également rempli avec trois options de la méthode FindItem. Un contrôle CommandButton contient le code pour la méthode FindItem ; quand vous cliquez sur ce bouton, une invite vous demande d'entrer la chaîne à rechercher, puis la méthode FindItem recherche cette chaîne dans le contrôle ListView. Si la chaîne est trouvée, la méthode EnsureVisible fait défiler le contrôle pour afficher l'objet ListItem trouvé. Pour tester cet exemple, placez un contrôle ListView, un contrôle ComboBox et un contrôle CommandButton dans une feuille, puis collez le code dans la section des déclarations de cette feuille. Exécutez cet exemple et cliquez sur le contrôle CommandButton.
Note Vous ne pouvez pas exécuter cet exemple tant que vous n'avez pas ajouté une référence à la bibliothèque d'objets Microsoft DAO 3.0 en cliquant sur Références dans le menu Projet.
Private Sub Form_Load()
' Crée une variable objet pour l'objet ColumnHeader.
Dim clmX As ColumnHeader
' Ajoute une collection ColumnHeaders. La largeur
' des colonnes est égale à celle du contrôle
' divisée par le nombre d'objets ColumnHeader.
Set clmX = ListView1.ColumnHeaders. _
Add(, , "Company", ListView1.Width / 3)
Set clmX = ListView1.ColumnHeaders. _
Add(, , "Address", ListView1.Width / 3)
Set clmX = ListView1.ColumnHeaders. _
Add(, , "Phone", ListView1.Width / 3)
' Définit la propriété BorderStyle.
ListView1.BorderStyle = ccFixedSingle
' Définit la vue Détails.
ListView1.View = lvwReport
Command1.Caption = "&FindItem"
' Légende des contrôles OptionButton avec les
' options de la méthode FindItem.
Option1(0).Caption = "Text"
Option1(1).Caption = "SubItem"
Option1(2).Caption = "Tag"
ListView1.FindItem = 0 ' Définit la propriété FindItem à Text.
End With
' Remplit le contrôle ListView avec des enregistrements de la base de
' données. Crée des variables objet pour les objets d'accès
' aux données.
Dim myDb As Database, myRs As Recordset
' Spécifie BIBLIO.MDB comme base de données.
Set myDb =DBEngine.Workspaces(0). _
OpenDatabase("BIBLIO.MDB")
' Spécifie la table Publishers comme jeu d'enregistrements.
Set myRs = myDb.OpenRecordset("Publishers", dbOpenDynaset)
' Quand l'enregistrement n'est pas le dernier,
' ajoute un objet ListItem.
' Utilise la référence au nouvel objet pour définir
' les propriétés.
' Définit la propriété Text avec la valeur du champ
' Name (myRS!Name).
' Définit SubItem(1) avec la valeur du champ
' Address (myRS!Address).
' Définit SubItem(7) avec la valeur du Champ
' Telephone (myRS!Telephone).
While Not myRs.EOF
Dim itmX As ListItem ' Une variable ListItem.
Dim intCount As Integer ' Une variable compteur.
' Utilise la méthode Add pour ajouter un nouveau' Définit la
' propriété FindItem à Text. ListItem et définit la variable objet
' ListItem et définit la variable objet avec la nouvelle référence.
' Utilise cette référence pour définir les propriétés.
Set itmX = ListView1.ListItems.Add(, , CStr(myRs!Name))
' Incrémente le compteur pour la propriété Tag.
intCount = intCount + 1
' Affecte la valeur du compteur à la propriété Tag.
itmX.Tag = "ListItem " & intCount
' Si le champ Address n'est pas nul, affecte sa
' valeur au sous-élément 1.
If Not IsNull(myRs!Address) Then
' Champ Address.
itmX.SubItems(1) = CStr(myRs!Address)
End If
' Si le champ Telephone n'est pas nul, affecte
' sa valeur au sous-élément 2.
If Not IsNull(myRs!Telephone) Then
' Champ Telephone.
itmX.SubItems(2) = myRs!Telephone
End If
' Passe à l'enregistrement suivant.
myRs.MoveNext
Wend
End Sub
Private Sub Command1_Click()
' Méthode FindItem.
' Crée une variable entière intSelectedOption pour stocker l'index
' du bouton sélectionné. Crée une variable de chaîne appelée
' strFindMe. Utilise InputBox pour stocker la chaîne à
' rechercher dans la variable. Utilise la méthode FindItem pour
' rechercher cette chaîne. Option1 permet de changer l'argument
' FindItem qui détermine où effectuer la recherche.
Dim intSelectedOption as Integer
Dim strFindMe As String
If Option1(0).Value = True then
strFindMe = InputBox("Rechercher dans " & Option1(0).Caption)
intSelectedOption = lvwText
End If
If Option1(1).Value = True then
strFindMe = InputBox("Rechercher dans " & Option1(1).Caption)
intSelectedOption = lvwSubItem
End If
If Option1(2).Value = True then
strFindMe = InputBox("Rechercher dans " & Option1(2).Caption)
intSelectedOption = lvwTag
End If
' La méthode FindItem renvoie une référence à l'élément trouvé,
' vous devez donc créer une variable objet et lui affecter
' la valeur de cet élément.
Dim itmFound As ListItem ' Variable itmFound.
Set itmFound = ListView1. _
FindItem(strFindMe, intSelectedOption, , lvwPartial)
' Si aucun objet ListItem n'est trouvé, informe
' l'utilisateur et quitte.
' Sinon, fait défiler le contrôle avec la méthode
' EnsureVisible, et sélectionne l'objet ListItem.
If itmFound Is Nothing Then ' Si aucune concordance n'est trouvée,
' informe l'utilisateur et quitte.
MsgBox "Aucune concordance"
Exit Sub
Else
' Fait défiler ListView pour afficher l'objet ListItem.
itmFound.EnsureVisible
itmFound.Selected = True ' Sélectionne l'objet ListItem.
' Rend le focus au contrôle pour afficher la sélection.
ListView1.SetFocus
End If
End Sub
Private Sub ListView1_LostFocus()
' Quand le contrôle a perdu le focus, redéfinit la propriété
' propriété Selected de chaque objet ListItem à la valeur False.
Dim i As Integer
For i = 1 to ListView1.ListItems.Count
ListView1.ListItems.Item(i).Selected = False
Next i
End Sub
Sinon tu peux parcourir chaque élément de la listview :
dim i as integer
dim Trouvee as boolean
dim NumElemnt as integer
Trouvee =false
For i:=i to ListView1.ListItems.count
if ListView1.ListItems.list(i)=LeMotRecherché then
Trouvee =true
NumElemnt =i
exit for
end if
next i
if Trouvee =true then
msgbox "Le Numéro de la ligne est: " & NumElemnt
else
msgbox "élément non trouvé"
end if
-------------------------------------------
Ne vous fiez pas à l'apparence...