je dois mettre au point un code VBA qui accède à un ensemble de signets pour
modifier du texte à des endroits précis d'un document Word (versions 2000 et
2002), en VBA.
Aucun problème pour tout ça, sauf pour un signet qui se trouve dans un
en-tête de page, VBA ne peut y accéder visiblement.
Y a-t-il une option à définir quelque part pour que Word intègre les
en-têtes et pieds de pages dans ses recherches de signets ? Si non, peut-on
contourner le problème ?
J'ai tenté de mettre un tableau dans le pied de page, et d'accéder via VBA
au contenu de la cellule (Collection Tables() ), mais idem, Word ne passe pas
en revue les tables dans les en-têtes et pieds de pages.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Anacoluthe
Bonjour !
'Sébastien' nous a écrit ...
je dois mettre au point un code VBA qui accède à un ensemble de signets Aucun problème pour tout ça, sauf pour un signet qui se trouve dans un en-tête de page, VBA ne peut y accéder visiblement.
On ne sait pas comment vous 'accédez' en vba à vos signets mais la collection ActiveDocument.Bookmarks englobe aussi ceux des en-têtes ! Par ailleurs vous pouvez cibler un en-tête (ett) particulier : ainsi ActiveDocument.Sections(1).Headers(1).Range.Bookmarks(1) désigne le premier signet de l'ett primaire de la première section.
Y a-t-il une option à définir quelque part pour que Word intègre les en-têtes et pieds de pages dans ses recherches de signets ? Si non, peut-on contourner le problème ?
Pas besoin d'option :-p Si ça vous ennuie d'aller dans les ett, un truc simple est de définir votre signet dans le corps de texte (au besoin avec un champ SET) et de se contenter d'un renvoi en ett. L'accès en vba aux tableaux des en-têtes suit la même logique.
Anacoluthe « Dans la vie il faut prendre son pied sans se prendre la tête. » - Gustave PARKING
Bonjour !
'Sébastien' nous a écrit ...
je dois mettre au point un code VBA qui accède à un ensemble de signets
Aucun problème pour tout ça, sauf pour un signet qui se trouve dans un
en-tête de page, VBA ne peut y accéder visiblement.
On ne sait pas comment vous 'accédez' en vba à vos signets mais la
collection ActiveDocument.Bookmarks englobe aussi ceux des en-têtes !
Par ailleurs vous pouvez cibler un en-tête (ett) particulier : ainsi
ActiveDocument.Sections(1).Headers(1).Range.Bookmarks(1) désigne
le premier signet de l'ett primaire de la première section.
Y a-t-il une option à définir quelque part pour que Word intègre les
en-têtes et pieds de pages dans ses recherches de signets ? Si non, peut-on
contourner le problème ?
Pas besoin d'option :-p Si ça vous ennuie d'aller dans les ett, un truc
simple est de définir votre signet dans le corps de texte (au besoin
avec un champ SET) et de se contenter d'un renvoi en ett.
L'accès en vba aux tableaux des en-têtes suit la même logique.
Anacoluthe
« Dans la vie il faut prendre son pied sans se prendre la tête. »
- Gustave PARKING
je dois mettre au point un code VBA qui accède à un ensemble de signets Aucun problème pour tout ça, sauf pour un signet qui se trouve dans un en-tête de page, VBA ne peut y accéder visiblement.
On ne sait pas comment vous 'accédez' en vba à vos signets mais la collection ActiveDocument.Bookmarks englobe aussi ceux des en-têtes ! Par ailleurs vous pouvez cibler un en-tête (ett) particulier : ainsi ActiveDocument.Sections(1).Headers(1).Range.Bookmarks(1) désigne le premier signet de l'ett primaire de la première section.
Y a-t-il une option à définir quelque part pour que Word intègre les en-têtes et pieds de pages dans ses recherches de signets ? Si non, peut-on contourner le problème ?
Pas besoin d'option :-p Si ça vous ennuie d'aller dans les ett, un truc simple est de définir votre signet dans le corps de texte (au besoin avec un champ SET) et de se contenter d'un renvoi en ett. L'accès en vba aux tableaux des en-têtes suit la même logique.
Anacoluthe « Dans la vie il faut prendre son pied sans se prendre la tête. » - Gustave PARKING
Sébastien
Bonjour,
Alors, quelques précisions : J'ai défini plusieurs signets dans mon document ("NomAffaire", "NomParticipant", ...). A l'ouverture du document, une UserForm s'affiche et invite l'utilisateur à saisir des informations qui sont ensuite mises à jour dans le document. J'utilise le code suivant derrière mon bouton "OK" :
etc. pour les autres signets. Ca marche pour tous, sauf pour ceux qui sont en en-tête, en fait. De même pour les tableaux :
j'ai insérer 3 tableau dans un document, ainsi qu'un en en-tête et un en pied de page. J'exécute le code suivant :
For Each tableau In ActiveDocument.Tables() tableau.Cell(Row:=2, Column:=2).Range.Text = "Test" Next tableau
Seuls les tableaux du document principal sont touchés, pas ceux des en-tête et pieds de page.
Je vais tenter d'auteres méthodes, ou à défaut passer par un signet, mais j'aimerais trouver LA solution propre ;-)
Séb
Bonjour,
Alors, quelques précisions :
J'ai défini plusieurs signets dans mon document ("NomAffaire",
"NomParticipant", ...). A l'ouverture du document, une UserForm s'affiche et
invite l'utilisateur à saisir des informations qui sont ensuite mises à jour
dans le document. J'utilise le code suivant derrière mon bouton "OK" :
Alors, quelques précisions : J'ai défini plusieurs signets dans mon document ("NomAffaire", "NomParticipant", ...). A l'ouverture du document, une UserForm s'affiche et invite l'utilisateur à saisir des informations qui sont ensuite mises à jour dans le document. J'utilise le code suivant derrière mon bouton "OK" :
Pour aller très vite utilisez plutôt : ActiveDocument.Bookmarks("NomAffaire").Select car GoTo ne peut pas sortir de sa 'story' Le mieux serait d'aller dans l'en-tête ou de l'afficher. C'est aussi ce qu'il faut faire pour les tableaux.
Anacoluthe « Dans la vie il faut prendre son pied sans se prendre la tête. » - Gustave PARKING
Pour aller très vite utilisez plutôt :
ActiveDocument.Bookmarks("NomAffaire").Select
car GoTo ne peut pas sortir de sa 'story'
Le mieux serait d'aller dans l'en-tête ou de l'afficher.
C'est aussi ce qu'il faut faire pour les tableaux.
Anacoluthe
« Dans la vie il faut prendre son pied sans se prendre la tête. »
- Gustave PARKING
Pour aller très vite utilisez plutôt : ActiveDocument.Bookmarks("NomAffaire").Select car GoTo ne peut pas sortir de sa 'story' Le mieux serait d'aller dans l'en-tête ou de l'afficher. C'est aussi ce qu'il faut faire pour les tableaux.
Anacoluthe « Dans la vie il faut prendre son pied sans se prendre la tête. » - Gustave PARKING