ListBox

Bonjour le forum

Après avoir récupérer un exemple de macro, j'ai voulu l'appliquer sur mon fichier joint "ListBox Recherche.xlsm".

Malheureusement, ça ne marche pas comme prévu .

Je vous explique.

Si on prend le tableau de villes à titre d'exemple, je voudrais qu'en tapant les premières lettres ou la ville dans le TextBox "Champ de recherche" et bien que le résultat s'affiche dans la ListBox "Résultat de la recherche" tout en mettant en surbrillance dans la colonne A.

Quelqu'un peut-il m'aider, SVP ?

Je vous remercie d'avance de votre aide.

Cordialement,

JOHN72.

Bonjour,

Un essai ...

Modification de : If Cells(Ligne, 1) Like "*" & UCase(TextCodesPostaux.Value) & "*" Then ...

Private Sub TextCodesPostaux_Change()

    ' Déclaration des variables
    Dim NbLigne As Integer
    Dim Ligne As Integer

    ' Couleur
    Range("Liste").Interior.ColorIndex = 15
    ' Remise à zéro
    LstRésultat.Clear

    ' Définir nombre de ligne à rechercher dans la liste
    NbLigne = WorksheetFunction.CountA(Range("A:A"))

    ' Test TxtBox pas vide
    If TextCodesPostaux <> "" Then
        ' Parcours de la liste à partir 2e ligne
        For Ligne = 2 To NbLigne
            ' Test de la cellule avec toutes les valeurs "*"
            If Cells(Ligne, 1) Like "*" & UCase(TextCodesPostaux.Value) & "*" Then
                ' Complète la valeur trouvée dans la ListBox
                Cells(Ligne, 1).Interior.ColorIndex = 26
                LstRésultat.AddItem Cells(Ligne, 1)
            End If
        Next Ligne
    End If
End Sub

ric

Bonjour le fil , bonjour le forum,

Autre option même résultat :

Private Sub TextCodesPostaux_Change()
' Déclaration des variables
Dim NbLigne As Integer
Dim Ligne As Integer

' Couleur
Range("Liste").Interior.ColorIndex = 15
' Remise à zéro
LstRésultat.Clear
' Définir nombre de ligne à rechercher dans la liste
NbLigne = WorksheetFunction.CountA(Range("A:A"))
' Test TxtBox pas vide
If TextCodesPostaux <> "" Then
    ' Parcours de la liste à partir 2e ligne
    For Ligne = 2 To NbLigne
        ' Test de la cellule si les premiers caractères correspondent
        If Left(Cells(Ligne, 1), Len(TextCodesPostaux)) = TextCodesPostaux Then
            ' Complète la valeur trouvée dans la ListBox
            Cells(Ligne, 1).Interior.ColorIndex = 26
            LstRésultat.AddItem Cells(Ligne, 1)
        End If
    Next Ligne
End If
End Sub

@Ric : encore merci pour FormulaLocal !...

Bonjour Ric

Bonjour ThauThème

Vos 2 propositions marchent avec succès .

Un grand merci pour votre aide et surtout votre rapidité.

Juste une dernière question :

Si je rajoute d'autres colonnes style le code postal par exemple, est-ce que dans ma ListBox je peux faire apparaître le 2 champs, SVP ?

Comme AAST (61000).

JOHN72.

Bonjour à tous,

Probablement ...

As-tu un bout de fichier exemple ?

ric

Je t'ai mis les codes et un exemple.

Merci.

JOHN72.

Bonjour,

Il a fallu modifier la propriété "ColumnCount" de la listbox pour 2... (2 colonnes).

Puis, ajouter une ligne pour lire la colonne B.

LstRésultat.List(LstRésultat.ListCount - 1, 1) = Cells(Ligne, 2)

ric

Impeccable ! Ça marche.

Un grand merci pour ton aide précieuse.

Passes une bonne soirée.

Cordialement,

JOHN72.

ric

Rechercher des sujets similaires à "listbox"