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 04/04/2007, 00h00   #1
Invité de passage
 
Inscription : avril 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 1
Points : 0
Points : 0
Par défaut [VBA-W] - Commentaires Word

Bonsoir,

J'essaie d'inserer des commentaires à des mots que je recherche dans mon document texte. J'ai d'abord utilisé l'enregistreur de Macro pour voir comment Word faisait. Mon problème est que lorsque je rejoues la macro que j'ai enregistré, cela ne marche pas bien du tout!! Je m'explique: le premier commentaire est bien inserer dans la bulle prévue à cet effet, mais à partir du deuxieme commentaire rien ne va plus!!! Word me créé bien les bulles pour les commentaires rattachés au bon mots que je cherchais, mais le texte à inserer dans ces dernières est directement inseré dans le corps de mon document.

Voici par exemple mon document word dans lequel je fais ma recherche:
Ceci est un test <<nom>> dont le but est d’ajouter des commentaires <<prenom>>
Voici le code generé par word pour illustrer mes propos:
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 
Sub Macro1()
 
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "<<nom>>"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchKashida = False
        .MatchDiacritics = False
        .MatchAlefHamza = False
        .MatchControl = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    WordBasic.InsertNewComment
    Selection.TypeText Text:="1234"
 
    Selection.EscapeKey
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "<<prenom>>"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchKashida = False
        .MatchDiacritics = False
        .MatchAlefHamza = False
        .MatchControl = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    WordBasic.InsertNewComment
    Selection.TypeText Text:="5678"
    Selection.EscapeKey
End Sub
C'est pourtant quelque chose de pas trop compliqué mais je n'arrive pas comprendre pourquoi Word m'insère mon deuxième commentaire dans le texte au lieu de le mettre dans la bulle comme il le fait si bien pour le premier.

Merci par avance à ceux qui pourront m'apporter un solution ou une piste pour que je puisse résoudre mon problème.
Snurps est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 09h37   #2
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Bonjours Snurps,
Bienvenue sur le forum.
Ton pb vient de ce que le code VBA attend autre chose de toi qu'un Escape pour sortir du commentaire. Tu dois retourner dans le document autoritairement
Ensuite, l'enregistreur de macro passe en revue tous les paramètres associés à Find. Comme la plupart de ces paramètres le sont par défaut, il est inutile de les préciser. Enfin, voici un code qui fait ce que tu veux Enfin, j'espère...
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub Macro1()
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "<<nom>>"
    End With
    Selection.Find.Execute
    WordBasic.InsertNewComment
    Selection.TypeText Text:="1234"
    ActiveDocument.Select
 
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "<<prenom>>"
    End With
    Selection.Find.Execute
    WordBasic.InsertNewComment
    Selection.TypeText Text:="5678"
    ActiveDocument.Select
End Sub
A+
ouskel'n'or 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 01h15.


 
 
 
 
Partenaires

Hébergement Web