Macro de comptage

Le
danielos
Bonjour,

Dans un document word, j'ai un tableau et je souhaitais compter le
nombre d'occurrence de 2 mots à l'intérieur du tableau qui n'est qu'u=
ne
partie du document.

J'arrive bien à sélectionner le texte concerné (tableau) avec 2 sig=
nets
mais par contre la boucle ne s'arrête pas à la fin de la sélection =
et
continue jusqu'à la fin du document. Quand au second comptage, il le=

passe directement et m'indique 0.
Je ne vois pas trop d'où vient le pb. Si l'un ou l'une d'entre vous
pouvait avoir la gentillesse de m'éclairer, je l'en remercie d'avance.

Sub Compte()

Dim X As Long, Y As Long
Dim Plage As Range
Dim Count As Integer, Count1 As Integer
Dim searchtext As String

'Selection du texte entre 2 signets
X = ActiveDocument.Bookmarks("Debutablo").Start
Y = ActiveDocument.Bookmarks("Fintablo").End
Set Plage = ActiveDocument.Range(Start:=X, End:=Y)
MsgBox Plage.Text 'simplement pour voir le texte sélectionné

'Comptage
Count = 0
searchtext = "Titulaire"
With Plage.Find
Do While .Execute(FindText:=searchtext$, Format:=False,
MatchCase:=False, MatchWholeWord:=True) = True
Count = Count + 1
Loop
End With
MsgBox searchtext$ & " a été trouvé " & Count & " fois"
ActiveDocument.Bookmarks("Nb1").Range.Text = Count

Count1 = 0
searchtext = "Stagiaire"
With Plage.Find
Do While .Execute(FindText:=searchtext$, Format:=False,
MatchCase:=False, MatchWholeWord:=True) = True
Count1 = Count1 + 1
Loop
End With
MsgBox searchtext$ & " a été trouvé " & Count1 & " fois"
ActiveDocument.Bookmarks("Nb2").Range.Text = Count1

End Sub

Merci encore.
Daniel
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JièL
Le #26367985
Hello,

Le 18/09/2015 15:28, danielos a écrit :
Bonjour,

Dans un document word, j'ai un tableau et je souhaitais compter le
nombre d'occurrence de 2 mots à l'intérieur du tableau qui n'est qu'une
partie du document.



Essaye ça
Sub Compte()

Dim Plage As String
Dim Compteur As Integer, Compteur1 As Integer
Dim searchtext As String
Dim Tableau() As String

Plage = LCase(ActiveDocument.Tables(1).Range.Text)

searchtext = LCase("Titulaire")
Tableau = Split(Plage, searchtext)
Compteur = UBound(Tableau())

Debug.Print searchtext & " a été trouvé " & Compteur & " fois"

searchtext = LCase("Stagiaire")
Tableau = Split(Plage, searchtext)
Compteur1 = UBound(Tableau())

Debug.Print searchtext & " a été trouvé " & Compteur1 & " fois"

End Sub

Le 1 de ActiveDocument.Tables(1) correspond au numéro d'ordre du tableau

LCase c'est pour tout transformer en minuscule des fois qu'ils ne soient
pas toujours écrit de la même manière

Et perso, je préfère les Debug.Print ça permet de rester dans la fenêtre
de code et de tout voir sans devoir cliquer sur OK à chaque boite de
dialogue

Merci encore.
Daniel



--
JièL
Publicité
Poster une réponse
Anonyme