VBA Word

Bonjour,

Dans le cadre d'un projet je souhaiterais que mon programme détecte les mots-clés (que j'ai ulterieurement définis) dans un document Word purement textuel.

Pour cela j'utilise l'outil Dictionnaire où tous les mots du fichier en question sont répertoriés, ensuite je veux qu'il compare chaque mots à la liste de mots clés que j'ai défini, cela sous-entend qu'il y a une boucle for dans une boucle for et que l'incrémentation des 2 variables se fasse simultanément. Ci-ci¡ontre l'extrait du programme qui pose problème:

[...code...]

MotsCles = Array("blo", "bla")

For Each wd In Selection.Words

tmp = Split(LCase(wd.Text), "'")

For i = 0 To UBound(tmp)

For Each k In dict.keys

For y = 0 To UBound(MotsCles)

If k <> MotsCles(y) Then dict.Remove k

Next y

Next k

If dict.Exists(tmp(i)) Then dict(tmp(i)) = dict(tmp(i)) + 1 Else dict(tmp(i)) = 1

Next i

Next wd

[...code...]

Je veux que l'incrémentation de y et k se fasse en même temps.

Je remercie toute aide qui me sera utile pour confronter ce gros problème si besoin j'afficherais le programme complet

bonsoir,

de ce que j'ai compris,tu devrais avoir un dictionnaire avec tes mots clés, prendre chaque mot de ton texte et s'il s'agit d'un mot-clé ajouter 1 au compteur de ce mot clé.

le code pourrait ressembler à ceci

motscle = "blo,bla"
    Set dictmc = CreateObject("scripting.dictionary")
    mc = Split(motscle, ",")
    For i = LBound(mc) To UBound(mc) 'on charge le dictionnaire des mots clés
        dictmc.Add mc(i), 0
    Next i
    For Each wd In ActiveDocument.Words 'on prend chaque mot du document
        mot = Trim(wd.Text)
        If dictmc.Exists(mot) Then dictmc(mot) = dictmc(mot) + 1 'si existe dans dictionnaire des mots clés on incrémente le compteur de ce mot clé
    Next
    For Each k In dictmc
        MsgBox k & " " & dictmc(k) 'affichage des mots clés et de leur compteur associé
    Next
Rechercher des sujets similaires à "vba word"