Shaegal
Messages postés110Date d'inscriptionvendredi 1 février 2008StatutMembreDernière intervention12 mai 2021
-
Modifié le 20 mars 2018 à 14:37
Shaegal
Messages postés110Date d'inscriptionvendredi 1 février 2008StatutMembreDernière intervention12 mai 2021
-
21 mars 2018 à 10:18
Bonjour,
C'est à la fois du VBA et du VB.NET.
J'ai un document word (.dotx) dont l'entête comporte plusieurs informations balisées que je dois pouvoir modifier avec VB.NET.
J'aimerai pouvoir modifier les parties balisées (#) de la même façon que la modification dans le corps de texte:
Dim ow as Object = CreateObject("Word.Application")
Dim Doc as Object = ow.Documents.Open("Adresse Document", ReadOnly := True)
ow.Visible = True
ow.Application.ActiveDocument.Content.Find.Execute(FindText:="Texte balisé à remplacer", ReplaceWith:="Nouveau texte")
Shaegal
Messages postés110Date d'inscriptionvendredi 1 février 2008StatutMembreDernière intervention12 mai 20211 Modifié le 21 mars 2018 à 09:43
Bonjour et merci pour ta réponse.
Adapter du VBA en VB.NET n'est pas un problème. Trouver le code VBA en est parfois un. Dans mon cas, même l'enregistreur de macros ne m'a rien donné. C'est pourquoi je suis venu chercher de l'aide ici.
Je procède de cette manière car, dans la l'entreprise où je travailles, nous n'avons pas les mêmes versions d'Office. Certains sont encore en 97-2003 et d'autres en 2016. Je suis en version 2010.
De cette façon, je m’affranchis de la gestion des versions. J'ai déjà eu ce problème avant quand j'utilisais l'interop.
Ton premier lien fonctionne très bien (mais ne remplace pas) dans le corps de texte. Mais pas dans l'entête.
Par contre, j'ai testé ton lien et ma méthode (qui présente l'avantage de s'écrire en une seule ligne et remplace le texte trouvé) en "activant" avant (double-clic dans) la zone de l'entête. Et là, tout fonctionne.
Ma question devient maintenant: comment sélectionner (activer?) l'entête pour y effectuer mes modifications en VBA, puis revenir dans le corps de texte?
Modifié le 21 mars 2018 à 09:43
Adapter du VBA en VB.NET n'est pas un problème. Trouver le code VBA en est parfois un. Dans mon cas, même l'enregistreur de macros ne m'a rien donné. C'est pourquoi je suis venu chercher de l'aide ici.
Je procède de cette manière car, dans la l'entreprise où je travailles, nous n'avons pas les mêmes versions d'Office. Certains sont encore en 97-2003 et d'autres en 2016. Je suis en version 2010.
De cette façon, je m’affranchis de la gestion des versions. J'ai déjà eu ce problème avant quand j'utilisais l'interop.
Ton premier lien fonctionne très bien (mais ne remplace pas) dans le corps de texte. Mais pas dans l'entête.
Par contre, j'ai testé ton lien et ma méthode (qui présente l'avantage de s'écrire en une seule ligne et remplace le texte trouvé) en "activant" avant (double-clic dans) la zone de l'entête. Et là, tout fonctionne.
Ma question devient maintenant: comment sélectionner (activer?) l'entête pour y effectuer mes modifications en VBA, puis revenir dans le corps de texte?