Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/11/2011, 07h45   #1
Invité de passage
 
Homme Acine COND
Étudiant
Inscription : novembre 2011
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Acine COND
Localisation : Guinée

Informations professionnelles :
Activité : Étudiant
Secteur : Associations - ONG

Informations forums :
Inscription : novembre 2011
Messages : 7
Points : 0
Points : 0
Par défaut Répétions & doublons

Bonjour. Je suis primo-VBA, ultra-novice. Je cherche à identifier des répétitions ou doublons dans mes documents. J’ai trouvé sur les forums le code ci-dessous mais il ne marche pas. Le message : erreur de syntaxe. Lorsque je change « End if End if » en « End if », le message devient « Bloc Next sans for ». Merci de m’aider à corriger le code.

Cordialement.
Acine

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub trouveDoublons()
Const minLett = 3
Const nbMots = 150
Dim lm As New Collection
For Each w In ThisDocument.Words
v = Trim(w.Text)
g = InStr(1, v, Chr(146)) + InStr(1, v, "'")
If g > 0 And g < Len(v) Then v = Mid(v, g + 1)
If Len(v) > minLett Then
doubl = False
For Each m In lm
If m = v Then doubl = True
Next
If doubl Then
w.HighlightColorIndex = wdYellow
Else
lm.Add (v)
If lm.Count > nbMots Then lm.Remove (1)
End If End If
Next
End Sub
acine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 09h58   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 333
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 333
Points : 29 239
Points : 29 239
Salut,

Voilà le code indenté

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub trouveDoublons()
Const minLett = 3
Const nbMots = 150
Dim lm As New Collection
 
For Each w In ThisDocument.Words
    v = Trim(w.Text)
    g = InStr(1, v, Chr(146)) + InStr(1, v, "'")
    If g > 0 And g < Len(v) Then v = Mid(v, g + 1)
    If Len(v) > minLett Then
        doubl = False
            For Each m In lm
            If m = v Then doubl = True
            Next
 
            If doubl Then
            w.HighlightColorIndex = wdYellow
            Else
            lm.Add (v)
                If lm.Count > nbMots Then lm.Remove (1)
            End If
    End If
Next
End Sub
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 14h21   #3
Invité de passage
 
Homme Acine COND
Étudiant
Inscription : novembre 2011
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Acine COND
Localisation : Guinée

Informations professionnelles :
Activité : Étudiant
Secteur : Associations - ONG

Informations forums :
Inscription : novembre 2011
Messages : 7
Points : 0
Points : 0
Bonjour Hereux-oil
Merci beaucoup, votre modification marche. Mais je constate que l’analyse est effectuée mot à mot, or j’aurais souhaité faire une analyse par groupe de mots (min : 3 mots; max: 6 mots). Est-il possible d’introduire une modification dans ce sens. Encore grand merci.
acine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 16h43   #4
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 333
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 333
Points : 29 239
Points : 29 239
Salut,

Je n'ai regardé que la syntaxe du code.

Par groupe de trois mots, ce n'est pas gérable.
Ce code fait une boucle sur les mots d'un document qui forment une collection d'objets.

Un groupe de trois mots ou plus ne sera plus un objet.

Il fudrait revoir la totalité du code pour boucler sur les items et plus sur les objets.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h25.


 
 
 
 
Partenaires

Hébergement Web