Power Query Cherche une liste de mots dans une feuille et ajuter une colonne true/false si existe ou pas

elbahja79

XLDnaute Nouveau
bonjour

j'ai une liste de feuille dans un classeur et j'ai une feuille qui contient la liste de mots clés à chercher (liste variable).

je veux construire un tableau qui contient la liste des feuilles et ajouter une colonne qui contient:
  • true si au moins un des mots clé est contenu dans une partie d'une cellule de la feuille,
  • false si aucun mots clé ne figure dans une cellule dans cette feuille.

Merci d'avance.
 

Pièces jointes

  • motsCherché.xlsx
    37.5 KB · Affichages: 7

chris

XLDnaute Barbatruc
Bonjour
Ce qui parait plus logique est le lister les mots existants dans les feuilles autres que résultat et mots
1678563776644.png
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Elbahja, Chris,
Pas tout compris à la structure du tableau en feuille Résultat.
Donc un essai au hasard en feuille "mots" avec une macro.
Un appui sur le bouton regarde l'existence du mot dans toutes les feuilles, écrit True/False et éventuellement la liste des feuilles où le mot a été trouvé. Avec :
VB:
Sub ChercheMot()
Dim T, i%, N%, Texte$
Application.ScreenUpdating = False
T = [LookFor[Mots cherchés]]                                                ' Transfert liste de mots dans array "T"
For i = 1 To UBound(T)                                                      ' Pour chaque mot
    Mot = "*" & LCase(T(i, 1)) & "*": Texte = ""                            ' Constuction du mot cherché ( "*Mot*" )
    For Each F In Worksheets                                                ' Pour chaque feuille
        If F.Name <> "mots" Then                                            ' Sauf la feuille "Mots"
            N = Application.CountIf(Sheets(F.Name).Range("A1:Z1000"), Mot)  ' Le mot cherché existe t-il ?
            If N <> 0 Then Texte = Texte & " - " & F.Name                   ' Si oui, on ajoute le nom de la feuille dans Texte
        End If
    Next F
    [LookFor].Item(i, 3) = Mid(Texte, 4)                                    ' Ecriture du Texte et de True/False
    If Texte <> "" Then [LookFor].Item(i, 2) = "True" Else [LookFor].Item(i, 2) = "False"
Next i
Columns.AutoFit
End Sub
 

Pièces jointes

  • motsCherché.xlsm
    47.4 KB · Affichages: 1

Discussions similaires

Réponses
13
Affichages
238

Statistiques des forums

Discussions
312 215
Messages
2 086 319
Membres
103 177
dernier inscrit
grizly