Problème dans un filtre de recherche d'une listview

Bonjour à tous et toutes,

J'ai un userform ( usf 2 ) qui reprend mon tableau de suivi de la feuil1.

j'ai voulu rajouter une combobox associée à une textbox pour afficher l'élément recherché.

L'alimentation de la combobox fonctionne ( à part la patte de mouche ) mais pas la recherche via la textbox

Cela commence toujours par Wend sans while

Sub rechercher()
    With usf2
        key = .TextBox1
        Cl = .cbxcrit.ListIndex
        .ListView1.ListItems.Clear
        Set D = Feuil1.[A3]

        While D <> ""
            If key Like UCase(Left(D.Offset(, Cl), Len(key))) Then
                Set Lst = .ListView1.ListItems.Add(, , Format(D.Cells(1, 1), "000"))

                For i = 2 To 8
                    Lst.ListSubItems.Add , , D.Cells(, i)
                Next i

                D.Cells(1, 3) = Format(D.Cells(1, 3), "ddmmyyyy")
                Set D = D.Offset(1, 0)
            Wend
        End With
End Sub

si l'un de vous a une idée, je sèche !!!!

D'avance, merci

Bon, à priori, j'ai posé une colle la !!!!!!!!

Bonjour,

Mon cher superfrancois, vous devriez savoir qu'il n'y a jamais ou rarement de colle ici
seulement des questions qui laissent dubitatif

Perso, j'aimerai bien savoir pourquoi du code qui concerne votre USF2 se trouve dans un module

De plus c'est un sujet maintes fois abordé, et avec une petite recherche vous auriez pu trouver ceci
https://forum.excel-pratique.com/excel/filtrer-listview-selon-une-combobox-111969

A+

Bonjour,

En complément à ce Bruno vous écrit, une recherche donne ce fil dans lequel je suis intervenu il y a 2 mois --> https://forum.excel-pratique.com/excel/transfert-irregulier-de-donnees-avec-plusieurs-criteres-18683...

Cordialement


Edit : en regardant votre usf2, votre Sub initialize pourrait être plutôt comme ceci

Private Sub UserForm_Initialize()
cbxcrit.List = Feuil1.ListObjects(1).ListColumns(2).DataBodyRange.Value
Call affiche_lvw
End Sub

Sinon je vois quelques erreurs et bugs dans le projet

- Exemple pour le bouton Historique, le code comme ceci plutôt

Private Sub btnhisto1_Click()
usf2.Show
Call affiche_lvw
End Sub

Ensuite supprimez l'instruction usf2.show dans le code Sub affiche_lvw()

- vous utilisez Application.quit. Jamais trop bon çà.... cela ferme excel !. Donc si vous avez d'autres fichiers ouverts non concernés par ce fichier, ils seront fermés automatiquement. Que va dire l'utilisateur s'il perd tout ce qu'il a fait dans un autre fichier....
Remplacez par --> Thisworkbook.close plutôt, là au moins vous ne fermerez que votre fichier et pas les autres

Rechercher des sujets similaires à "probleme filtre recherche listview"