[Automation Word C#] Fonction Recherche

Signaler
Messages postés
2
Date d'inscription
mercredi 22 octobre 2008
Statut
Membre
Dernière intervention
14 septembre 2010
-
Messages postés
1
Date d'inscription
mardi 4 janvier 2005
Statut
Membre
Dernière intervention
20 juillet 2010
-
Bonjour,

Je programme actuellement un petit logiciel c# chargé de recherché dans un document Word 2003 une liste d'acronymes et de les remplacer par leur définition.

En voulant améliorer ce programme je voudrais faire en sorte qu'il détecte tout les mots en majuscule et qu'il les compare avec mon tableau.

J'ai réussi a trouvé la fonction pour faire en sorte qu'il recherche les mots en majuscule mais je voudrais maintenant récupérer ce qu'il vient de trouver.

En gros ma ligne suivant marche:

msWord.Application.Selection.Find.Execute("<[A-Z]{2;5}>", true, ref M, true, ref M, ref M, ref M, ref M, ref M, ref M, replaceAll, ref M, ref M, ref M, ref M);

Il me remplace tout les mots par ce que je veux donc ca veut dire qu'il les trouve.

Mais comment je fais pour afficher se qu'il trouve ?

Si je fait

Console.WriteLine(msWord.Application.Selection.Find.Text);

Il m'affiche "<[A-Z]{2;5}>"

Merci !

1 réponse

Messages postés
1
Date d'inscription
mardi 4 janvier 2005
Statut
Membre
Dernière intervention
20 juillet 2010

C'est normal, la propriété Textde Selection.Find renvoie le texte que tu utilises pour la recherche, donc dans ton cas "<[A-Z]{2;5}>"

je te conseille d'essayer la recherche mot par mot, et non pas tous d'un coup (si j'ai bien compris ton paramètre "replaceAll"), dans une boucle while : Tant que tu trouves un mot, tu récupères la sélection puis tu remplace ce que tu veux remplacer

quelque chose dans ce genre là :

while (msWord.Application.Selection.Find.Execute(<tes paramètres>))
{
    Console.WriteLine(msWord.Selection.Text);
    //et par exemple :
    msWord.Selection.TypeText(msWord.Selection.Text.ToLower())
    //attention, TypeText ne fonctionnera que si dans Word, l'option "la frappe remplace la sélection" est coché ! 
    //(par défaut, c'est le cas)
}