Macro recherche dans listview -> mais doublon

Bonjour à tous !

Voilà j'ai un UF où j'ai une listview.

J'ai créé une macro qui me permet de recherché un ou regroupement de mots dans la listview et qui la réactualise.

Mais du coup, si le mot est trouvé plusieurs fois dans la même ligne (du tableur) il va m'ajouter autant de ligne dans la listview, ce que je ne veut pas.

Et c'est la que je bloque, j'essaie de lui dire: si tu trouve un mot alors "ta zone de recherche" est maintenant ligne plus bas(dans le tableur), pour éviter qu'il m'ajoute encore la même ligne (dans la listview) si le même mot recherché est encore sur la ligne du tableur.

Private Sub recherche_Change()

 Dim ligne As Integer, cellule As Range, derlign As Long, origine As Range, ligne2 As Integer, position As Object

    derlign = Sheets("BDD").Range("I" & Rows.Count).End(xlUp).Row
    Set position = Sheets("BDD").Range("A2:I" & derlign)
 With visio
        .ListItems.Clear

                ligne = 1

                     For Each cellule In position

                       ligne2 = cellule.Row

                        If InStr(1, cellule.Value, recherche) > 0 Then

                            Set origine = Sheets("BDD").Cells(ligne2, 1)

                            .ListItems.Add , , origine
                            .ListItems(ligne).ListSubItems.Add , , origine.Offset(0, 1)
                            .ListItems(ligne).ListSubItems.Add , , origine.Offset(0, 2)
                            .ListItems(ligne).ListSubItems.Add , , origine.Offset(0, 3)
                            .ListItems(ligne).ListSubItems.Add , , origine.Offset(0, 4)
                            .ListItems(ligne).ListSubItems.Add , , origine.Offset(0, 5)
                            .ListItems(ligne).ListSubItems.Add , , origine.Offset(0, 6)
                            .ListItems(ligne).ListSubItems.Add , , origine.Offset(0, 7)
                            .ListItems(ligne).ListSubItems.Add , , origine.Offset(0, 8)
                            .ListItems(ligne).ListSubItems.Add , , origine.Offset(0, 9)

                             ligne = ligne + 1

                             Set position = Sheets("BDD").Range("A2:I" & derlign).Offset(1, 0)

                         Else

                         End If

                    Next cellule

                    If recherche = "" Then

                        Call userform_Initialize

                    End If

   End With

End Sub

Voilà mon code, c'est surment encore le bazar, il doit etre amélioré !

Merci de votre aide

Bonjour

Tu devrais joindre ton fichier avec ce que tu as au départ et un exemple de ce que tu veux obtenir.

Bye !

Rechercher des sujets similaires à "macro recherche listview doublon"