MACRO Word+calcul le nombre de fois qu apparait un mot

[Résolu]
Signaler
Messages postés
10
Date d'inscription
lundi 5 avril 2004
Statut
Membre
Dernière intervention
20 juillet 2006
-
Messages postés
10
Date d'inscription
lundi 5 avril 2004
Statut
Membre
Dernière intervention
20 juillet 2006
-
Tatayet














slt a tout le monde voilà mon soucis je recupère un fichier txt qui est en faite une liste de
commande. Chaque commande commence par le mot " vveva ". A chaque fois
je vois ce mot je fais un saut de page ce qui me permet de mettre une
commande par page. Dans mon code j'ai fais la fin c'est a dire le saut
de page mais ds ma boucle j'ai mis une valeur  par défaut donc je
voudrais rendre cela dynamique. Je voudrais calculer le nombre de fois qu apparait ce mot "vveva".

Sub VAA()

    For i = 1 To 427 (=>427 correspond au nombre de vvevaa que g trouvé manuellement avec rech/remplacer)
        Selection.Find.ClearFormatting
        With Selection.Find
            .Text = "VVEVA"
            .Replacement.Text = "VVEVA"
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        Selection.Find.Execute
        Selection.Find.Execute
        Selection.InsertBreak Type:=wdSectionBreakNextPage
    Next

End Sub

2 réponses

Messages postés
402
Date d'inscription
vendredi 6 août 2004
Statut
Membre
Dernière intervention
12 octobre 2008
28
bonjour

j'espere que cet exemple pourra t'aider

compter le nombre de fois que le mot VVEVA apparait dans le document

Dim Plage As Object, Wrd As Object
Dim x As Integer


Set Plage = ActiveDocument.Content.Words
For Each Wrd In Plage
    If InStr(1, Wrd.Text, "VVEVA") > 0 Then x = x + 1
Next Wrd


MsgBox x

et pour inserer un saut de page à chaque mot trouvé

Sub Test_V01()
Dim Plage As Object, Wrd As Object
Dim x As Integer


Set Plage = ActiveDocument.Content.Words
For Each Wrd In Plage
    x = x + 1
    If InStr(1, Wrd.Text, "VVEVA") > 0 And x > 1 Then _
    Wrd.InsertBreak Type:=wdSectionBreakNextPage
Next Wrd


End Sub

bonne journée
michel
Messages postés
10
Date d'inscription
lundi 5 avril 2004
Statut
Membre
Dernière intervention
20 juillet 2006

Tatayet








Merci beaucoup Michel