Recherche "mot" dans une colonne + lister les lignes

15du-allege.zip (43.89 Ko)

Bonjour,

j'ai déjà cherché quelques solutions à mon problème mais sans grand succès.. et pourtant c'est pas faute d'avoir essayé.

Je m'explique (onglet "Plan d'action" dans mon fichier):

Je cherche à créer un champ de recherche dans lequel si je rentre un "mot" (en l'occurrence des prénoms) dans le champ, la macro me cherche le "mot" dans la colonne L de mon fichier. Jusque là rien de vraiment compliqué..

Mais j'aimerai ajouter sa : si le mot est présent en colonne L, alors lister les lignes correspondantes qui comprennent le "mot" en colonne L...

Merci d'avance !

(Onglet "Services" de mon fichier)

Je suis également à la recherche d'une macro qui en cas de cellule non vide dans une colonne A, remplirai chaque cellule non vide par une couleur aléatoire. (mais je n'ai pas eu encore le temps de me renseigner sur ce problème, mais je pose quand même la question).

Merci d'avance, bonne soirée à vous.

Loïc

Bonjour

Comme trop souvent, il manque un fichier pour étayer le propos

Cordialement

Bonjour,

je m'excuse de l'oubli concernant un fichier illustrant mon problème.

A vous lire.

Loïc

Bonjour,

Une piste as une petite fonction de recherche. Exécuter la sub "Test" en ayant au préalable défini le mot recherché :

Sub Test()

    Dim Tablo() As Long
    Dim I As Integer
    Dim Lignes As String
    Dim MonMot As String

    MonMot = "Test" '<-- adapter le mot recherché...

    Tablo = Rechercher(MonMot)

    If Tablo(1) = -1 Then

        MsgBox "Le mot '" & MonMot & "' est introuvable !"
        Exit Sub

    End If

    Lignes = "Les lignes où se trouve le mot recherché sont : "

    For I = 1 To UBound(Tablo)

        Lignes = Lignes & vbCrLf & Tablo(I)

    Next I

    MsgBox Lignes

End Sub
Function Rechercher(Mot As String) As Long()

    Dim Plage As Range
    Dim Cel As Range
    Dim Tbl() As Long
    Dim Adr As String
    Dim I As Integer

    With ActiveSheet

        Set Plage = .Range(.Cells(1, 12), .Cells(.Rows.Count, 12).End(xlUp))

    End With

    Set Cel = Plage.Find(Mot, , xlValues, xlWhole)

    If Not Cel Is Nothing Then

        Adr = Cel.Address

        Do

            I = I + 1
            ReDim Preserve Tbl(1 To I)

            Tbl(I) = Cel.Row

            Set Cel = Plage.FindNext(Cel)

        Loop While Adr <> Cel.Address

    Else

        ReDim Tbl(1 To 1)
        Tbl(1) = -1

    End If

    Rechercher = Tbl()

End Function

Hervé.

Rechercher des sujets similaires à "recherche mot colonne lister lignes"