Parcourir un tableau VBA

Bonjour à tous,

Voici mon problème, j'ai une liste de mots dans une colonne et j'aimerais savoir si un de ces mots apparaît dans une phrase. j'ai découpé les phrases mot par mot, j'ai donc un tableau avec plusieurs lignes et plusieurs colonnes. Je joins un fichier exemple détaillé.

Merci pour votre aide

12test-matiere.xlsx (12.02 Ko)

Bonjour,

une proposition,

Sub aargh()
    Set dict = CreateObject("scripting.dictionary") 'on crée un dictionnaire qui contiendra les mots qui nous intéressent
    With Sheets("feuil1") 'feuille contenant la liste des mots, et les mots à rechercher
       dl = .Cells(Rows.Count, 1).End(xlUp).Row 'nombre de mots dans la liste de mots (en colonne 1 (A))
        For i = 2 To dl 'chargement du dictionnaire
            dict(UCase(.Cells(i, 1))) = i
        Next i
        dl = .Cells(Rows.Count, 6).End(xlUp).Row 'nombre de lignes contenant des mots à rechercher  (sur base de la colonne F)
        For i = 2 To dl 'pour chaque ligne
            j = 6 'colonne contenant le premier mot à chercher
            res = "" 'résultat
            Do While .Cells(i, j) <> "" 'tant qu'il y a des mots à chercher sur la ligne
                If dict.exists(UCase(.Cells(i, j))) Then res = res & .Cells(i, j) & "," 'si mot trouvé dans la liste, on l'ajoute au résultat
                j = j + 1 'colonne suivante
            Loop
            If res <> "" Then res = Left(res, Len(res) - 1) 'on enlève la virgule finale
            .Cells(i, 3) = res  'affichage du résultat en colonne 3
        Next i 'ligne suivante
    End With
End Sub

lancer la macro via alt-F8

22test-matiere.xlsm (19.11 Ko)

Merci ça fonctionne super bien !

Où est-ce que je peux modifier ma liste initiale svp ?

Bonjour,

pas sûr d'avoir compris la question.

tu peux ajouter des mots à la liste en colonne A, la macro s'adapte au nombre de mots présents.

voir également commentaires dans le code ci-dessus.

C'étais pour mettre la liste des matières dans une autre feuille mais c'est bien comme ça merci !

re-bonjour,

si tu veux la liste des matières sur une autre feuille.

Sub aargh()
    Set dict = CreateObject("scripting.dictionary") 'on crée un dictionnaire qui contiendra les mots qui nous intéressent
    With Sheets("feuil2") 'feuille contenant la liste des mots
       dl = .Cells(Rows.Count, 1).End(xlUp).Row 'nombre de mots dans la liste de mots (en colonne 1 (A))
        For i = 2 To dl 'chargement du dictionnaire
            dict(UCase(.Cells(i, 1))) = i
        Next i
    end with
    with sheets("feuil1") 'feuille contenant les mots à rechercher
        dl = .Cells(Rows.Count, 6).End(xlUp).Row 'nombre de lignes contenant des mots à rechercher  (sur base de la colonne F)
        For i = 2 To dl 'pour chaque ligne
            j = 6 'colonne contenant le premier mot à chercher
            res = "" 'résultat
            Do While .Cells(i, j) <> "" 'tant qu'il y a des mots à chercher sur la ligne
                If dict.exists(UCase(.Cells(i, j))) Then res = res & .Cells(i, j) & "," 'si mot trouvé dans la liste, on l'ajoute au résultat
                j = j + 1 'colonne suivante
            Loop
            If res <> "" Then res = Left(res, Len(res) - 1) 'on enlève la virgule finale
            .Cells(i, 3) = res  'affichage du résultat en colonne 3
        Next i 'ligne suivante
    End With
End Sub
Rechercher des sujets similaires à "parcourir tableau vba"