IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[C#,Word] Recherche et remplacement dans Word incomplet


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 16
    Points : 16
    Points
    16
    Par défaut [C#,Word] Recherche et remplacement dans Word incomplet
    Bonjour !

    Pour automatiser quelques actions dans Word, j'ai fait un programme C# pour remplir plusieurs fichiers Word.
    Pour le moment, j'utilise des fichiers "modèles", de simples documents Word dont les textes à remplacer sont marqués $Dossier, $PrixTTC, ...
    Je reste en C# parce que je ne modifie pas que des documents Word.

    Pour le remplacement des textes "normaux", tout va bien; par contre, impossible de remplacer les textes dans les zones de texte (du menu insertion>Zone de texte).

    J'utilise le code suivante (doc est un Word.DocumentClass, le document ouvert) :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    public void ReplaceWord( string recherche, string remplace )
    {
    	Word.Range rng = doc.Content;
    	object replaceAll = Word.WdReplace.wdReplaceAll;
     
    	rng.Find.ClearFormatting();
    	rng.Find.Text = recherche;
    	rng.Find.Replacement.ClearFormatting();
    	rng.Find.Replacement.Text = remplace;
     
    	do
    	{
    		rng.Find.Execute( ref missing,
    			ref False, ref False, ref False, ref False, ref False,
    			ref True, ref missing, ref missing, ref missing, ref replaceAll,
    			ref missing, ref missing, ref missing, ref missing );
    	} while( rng.Find.Found );
    }

    J'aimerais savoir s'il y avait une solution pour régler le problème des zones de texte, sinon est-ce qu'il y a une autre solution pour utiliser un document Word comme modèle.

    Je précise que je ne peux pas modifier ces documents modèles au niveau formatage, ni au niveau du placement des textes (d'où le fait de ne pas supprimer simplement la zone de texte).

    Voilà, vous savez tout.
    Merci d'avance pour vos réponses...

    PS: j'ai oublié de dire que je travaille sur un Word 2000.
    J'ai regardé la forme brute d'un fichier Word, mais c'est un peu bizarre (texte identique à celui entré, ou des caractères \0 entre chaque lettre...

  2. #2
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    il y a une raison de passer par des textes "$Prix", etc plutôt que des champs de publipostage qui servent justement à faire de l'automation?

    tu pourrais ne plus avoir ton soucis de Zone de texte justement
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    Merci pour la réponse

    Il me semblait que le publipostage ne marchait qu'en mode "à la main", pas en automatisé...

    Je suis en train de regarder une autre piste, celle des fichiers Modèles (.dot) et des signets; on m'a passé ce lien : http://support.microsoft.com/kb/316384/en-us

    Ça a l'air de régler mes problèmes (en fait, j'ajoute du texte au niveau du signet), mais un nouveau apparait : si le signet n'existe pas, Word demande son CD d'installation

    Je pense continuer sur cette voie, voir ce que ça peut donner...

  4. #4
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    Il me semblait que le publipostage ne marchait qu'en mode "à la main", pas en automatisé...
    non non, c'est fait pour justement.
    les fields sont facilement récupérables et après tu fais monField.Value = "toto pwet pwet";
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    Je vais jeter un oeil au publipostage, car je viens de trouver un problème dans ma solution de signets : ils sont uniques.
    Je ne peux pas avoir deux signets 'Dossier' dans un document...

  6. #6
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    Citation Envoyé par Tom87@21 Voir le message
    Je vais jeter un oeil au publipostage, car je viens de trouver un problème dans ma solution de signets : ils sont uniques.
    Je ne peux pas avoir deux signets 'Dossier' dans un document...
    oui parcontre, ca c'est logique. Il faut imaginer cela comme un formulaire contenant des textbox, il faut pouvoir les différencier de façon unique.
    mais rien ne t'empeche d'appeler des signets Dossier1, Dossier2, Dossier3
    et de faire méthode qui se base sur contains() pour traiter les signets qui t'intéressent
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  7. #7
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    Bon j'ai des problèmes de variables avec le publipostage, je ne dois pas m'y prendre comme il faut...

    J'ai essayé ce que tu as dit sur les signets, ça a l'air de marcher
    Je continue donc sur cette voie pour le moment.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    Je reste avec les signets, c'est la manière la plus simple de procéder (et peut-être même plus efficace qu'un rechercher-remplacer ...)

    Je passe le sujet en "Résolu"
    Merci pour ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Recherche de texte dans word à partir d'excel
    Par bullrot94 dans le forum Excel
    Réponses: 2
    Dernier message: 19/10/2008, 14h43
  2. 10G-WORD Recherche de fichiers dans répertoire
    Par Marcel Chabot dans le forum Forms
    Réponses: 10
    Dernier message: 01/05/2008, 16h12
  3. rechercher remplacer dans word 2003
    Par MALREGG dans le forum Word
    Réponses: 8
    Dernier message: 27/06/2007, 13h26
  4. recherche et remplacement dans Word >=2002
    Par jpg80150 dans le forum Access
    Réponses: 5
    Dernier message: 12/02/2007, 20h09
  5. Réponses: 3
    Dernier message: 08/08/2006, 08h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo