Rechercher charactère dans un document word depuis un fichier Excel (VBA)

Bonjour à tous,

J'aimerais savoir si l'un(e) d'entre vous aurez une idée pour mon problème suivant.

Depuis un fichier excel,

Je sélectionne un document word dans lequel j'aimerai rechercher toute les "balises". Je m'explique.

C'est un document "type" où certaine donnée doive être rempli en fonction d'un formulaire. Mais j'aimerai quand je choisi mon doc type récupérer toutes les "balises" pour ensuite les gérer dynamiquement. Chaque "balise" commence par "{" et fini par "}", et entre c'est le nom de ma balise.

Actuellement, je suis obligé de recherché ma balise entière puis de la remplacer par mon texte.

Sub test()
    'On déclare, instancie et affiche Word :
    Dim traitementTexte As Word.Application
    Set traitementTexte = New Word.Application
    traitementTexte.Visible = True

    Dim cheminComplet As String
    cheminComplet = Application.GetOpenFilename

    'On ouvre le bon document
    Dim leDoc As Document
    Set leDoc = traitementTexte.Documents.Open(cheminComplet)

    'On tente de remplacer {BALISE} par le texte de remplacement :
    leDoc.Content.Find.Execute FindText:="{NOM_DE_MA_BALISE}", ReplaceWith:="texte de remplacement", Replace:=wdReplaceAll
End Sub
4exemple.docx (14.33 Ko)
3exemple.xlsm (17.94 Ko)

Bonjour,

Ici Vba inutile, juste un publipostage très classique =>

https://support.microsoft.com/fr-fr/office/fusion-et-publipostage-%C3%A0-l-aide-d-une-feuille-de-cal...

Pourquoi se compliquer la vie?

Sinon démo de code si vraiment c'est nécessaire =>

https://forum.excel-pratique.com/excel/excel-vers-word-garder-les-styles-d-ecriture-158635#p982045

Pierre

Bonjour et merci pour votre message.

Ici Vba inutile

En fait si je passe par du VBA parce que derrière j’ai d’autre fonction donc devoir faire une partie sur Excel et l’autre sur Word je trouve ça pénible.
Ensuite, je veux pas passer par les signets parce que je trouve pas ça bien fait pour une personne lambda.

Actuellement ma solution est :

-> après la sélection du fichier word, je demande à l’utilisateur de rentrer à la main les balises présentes dans le fichier.

J’aimerai juste que ça se fasse tout seul, je trouvera ça plus pratique.

Bonjour,

ci-jointe une proposition en utilisant le contrôle de contenu de l'onglet développeur :

7exemple01.docx (27.97 Ko)
4exemple01.xlsm (20.41 Ko)

Merci Thev pour votre réponse.

Si demain j'ai un document avec trois nom (Nom_1, Nom_2 et Nom_3), je suis obligé de mettre tout à jour à la main ? Pas possible de faire une macro qui détecte ça dans mon docs word ?

Bonjour,

La solution est alors de générer vos contrôles de formulaire à partir du document modèle Word, soit à l'exécution, soit à la compilation.

ci-jointe version avec génération à l'exécution

7exemple02.xlsm (25.69 Ko)

Merci thev pour cette réponse.

Mais ducoup petite question : je suis forcément obligé de passer par un contrôleur ?

Ou est-ce qu'il pourrait être possible de faire une simple recherche d'un caractère et de récupérer ce qui se trouve à droite jusqu'à un autre caractère ?

En gros, j'aurais mon doc Word :

Ici le texte de mon docs avec une {BALISE}.

Et en vba j'aimerai pouvoir rechercher toutes les "balises". Un peu comme on peut faire

monDocs.Content.Find.Execute FindText:="{BALISE}", ReplaceWith:="texte"

J'aimerais juste rechercher "{", récupérer les caractères suivants jusqu'à tomber sur "}" et ainsi de suite.

J'ai essayé de copier tout le contenu du doc sur excel pour ensuite faire ça direct sur excel mais ça importe une capture du docs donc pas vraiment du texte.

Mais du coup petite question : je suis forcément obligé de passer par un contrôleur ?
Lorsque vous voulez remplir des zones d'un doc Word à partir d'Excel, il est plus simple d'utiliser la variété des contrôles ( signets, champs de fusion, contrôles de contenu, ...) que Word met à disposition plutôt que d'en inventer de nouveaux.
Pour ce que vous voulez faire, le contrôle de contenu me parait le plus adapté.

Merci thev pour votre réponse.

La méthode est très pratique merci beaucoup.

Je mettrais à jour mon post si je trouve une autre solution dans la doc.

PS : Je cherche juste à faire ça pour m'amuser et apprendre de nouvelle possibilité.

Rechercher des sujets similaires à "rechercher charactere document word fichier vba"