[Résolu] Selection de texte Word avec OLE automation
Stagiaire WDF
Inscrit:
18/12/2007 09:48
Post(s): 3
Bonjour,

Je cherche a récupérer une chaine de caractères située entre 2 balises ( @@ et \@ par exemple ) dans un document Word. La chaine de caractères entre les balises est inconue.

Exemple de document Word:

blabla @@NameProgram\@ Fin du blabla

Je souhaiterais avoir sous Windev une variable sChaine qui puisse prendre la valeur "NameProgram". Mon problème est de sélèctionner "NameProgram" dans le fichier Word par programmation.

Quelqu'un pourrait’ il me donné un exemple, ou il la liste de toutes les commandes OLE que l'on peut utiliser avec Windev.

Merci d'avance

Contribution le : 18/12/2007 09:53

Edité par drcharly93 sur 18/12/2007 18:29:18
Créer un fichier PDF de la contribution Imprimer


Re: Selection de texte Word avec OLE automation
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Dans l'exemple livré avec WinDev 'Pilotage de Word' PCSoft livre avec cet exemple une classe cWord qui permet de remplacer du texte dans un document Word.

Je vous conseille de tester cet exemple pour en comprendre le fonctionnement

Contribution le : 18/12/2007 09:58
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Selection de texte Word avec OLE automation
Stagiaire WDF
Inscrit:
18/12/2007 09:48
Post(s): 3
Merci de répondre aussi vite.

Mais de ce que j'ai compris, les méthodes de la classe cWord ne fonctionnent uniquement si du texte est sélectionné. Or mon problème est justement de sélectionné le texte par programmation sans ouvrir Word. Puisque le texte dans les entre mes balises m'est inconnu. Il me faut le récupérer, le traité pour savoir par quoi le remplacer. Le remplacement est par contre faisable avec la classe cWord.

Contribution le : 18/12/2007 10:16
Créer un fichier PDF de la contribution Imprimer


Re: Selection de texte Word avec OLE automation
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Voici la méthode pour remplacer du texte
oWord est un objet automation "Word.Application"
sFileName est une chaine = <Chemin complet du fichier word>
sTexteARechercher est une chaine = "@@Valeur1/@"
sTexteDeRemplacement est une chaine = "Valeur2"

//Ouverture en mémoire du fichier word
//Invisible par défaut
oWord>>Documents>>Open(sFileName)
oWord>>Selection>>Find>>Execute( sTexteARechercher, ,Faux,Faux,Faux,Faux,Faux,Faux,1,Faux,sTexteDeRemplacement)


la valeur 1 signifie que la fonction va remplacer toutes les occurences de sTexteARemplacer par la valeur sTexteDeRemplacement dans tout le document

il ne reste plus ensuite qu'a effectuer le traitement complémentaire, envoie par mail, impression etc...
puis de fermer le document avec ou sans sauvegarde des modifications

Contribution le : 18/12/2007 11:41
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Selection de texte Word avec OLE automation
Stagiaire WDF
Inscrit:
18/12/2007 09:48
Post(s): 3
La solution a mon problème est la suivante:

On utilise la recherche de word pour trouver tous les trucs du type @coucou@, @blabla@, @etc..@ que l'on recupere dans sVariable.

texte_cherche="\@?*\@"
Word>>Selection>>GoTo(1,1,"1")
Word>>Selection>>Find>>ClearFormatting()
Word>>Selection>>Find>>Forward=True
Word>>Selection>>Find>>Text=texte_cherche
Word>>Selection>>Find>>MatchWildcards=OLEVrai
Word>>Selection>>Find>>Execute()
//res est une chaine
TANTQUE Word>>Selection>>Find>>Found<>0
sVariable = Word>>Selection>>Text
Word>>Selection>>Find>>Execute()
FIN

Aprés traitement du sVariable on peut remplacer la chaine de charactères avec la méthode indiquée par drcharly93

Merci et Bon dev à tous

Contribution le : 18/12/2007 14:35
Créer un fichier PDF de la contribution Imprimer


Re: Selection de texte Word avec OLE automation
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

A vouloir répondre trop vite je suis passé à coté du sens de la question
Citation :

Je cherche a récupérer une chaine de caractères située entre 2 balises ( @@ et \@ par exemple ) dans un document Word. La chaine de caractères entre les balises est inconue.

en relisant c'est plutot clair

Contribution le : 18/12/2007 15:04
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2