Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

remplissage d'informations à plusieurs endroits dans un doc

7 réponses
Avatar
Séb
Bonjour,

Je butte encore sur un problème de remplissage de document :
J'ai un document Word à l'intérieur duquuel il faut que j'insère une même
valeur à plusieurs endroits, via VBA a priori.

D'après mes recherches sur le net et les FAQ, j'essaie de m'orienter vers
les signets, ou des champs, mais il n'est visiblement pas possible de faire
un signet qui pointe à plusieurs endroits d'un coup.
Me trompé-je... ?

En solution de contournement, j'ai pensé mettre un signet pour la première
occurence, puis des renvois pour les autres apparitions de la même valeur, je
ne sais pas si c'est la solution la plus propre.

Existerait-il une autre solution à base de champs ?

Merci pour vos idées et conseils,

Séb

7 réponses

Avatar
AB
Bonjour Seb,
Tu as suivi les bonnes options : un signet pour la 1ère occurrence, et des
renvois à ce signet pour les autres.
C'est probablement, en effet, la solution la plus propre. Ce qui n'est pas
difficile, car à ma connaissance, il n'y en a pas d'autre...
AB

"Séb" a écrit dans le message de news:

Bonjour,

Je butte encore sur un problème de remplissage de document :
J'ai un document Word à l'intérieur duquuel il faut que j'insère une même
valeur à plusieurs endroits, via VBA a priori.

D'après mes recherches sur le net et les FAQ, j'essaie de m'orienter vers
les signets, ou des champs, mais il n'est visiblement pas possible de
faire
un signet qui pointe à plusieurs endroits d'un coup.
Me trompé-je... ?

En solution de contournement, j'ai pensé mettre un signet pour la première
occurence, puis des renvois pour les autres apparitions de la même valeur,
je
ne sais pas si c'est la solution la plus propre.

Existerait-il une autre solution à base de champs ?

Merci pour vos idées et conseils,

Séb


Avatar
Séb
"AB" a écrit dans le message de news:

Bonjour Seb,
Tu as suivi les bonnes options : un signet pour la 1ère occurrence, et des
renvois à ce signet pour les autres.
C'est probablement, en effet, la solution la plus propre. Ce qui n'est pas
difficile, car à ma connaissance, il n'y en a pas d'autre...
AB


Bonsoir,

La suite de mes recherche m'a laissé croire que j'étais effectivemen sur la
bonne voie.
Seul regrêt que j'ai, la non mise à jour automatique des champs (les
renvois, en l'occurence), surtout dans les en-têtes et pieds de pages.
Mais bon, ça va bien se contourner, je vais m'orienter vers cela.

Séb

Avatar
AB
Rebonsoir,
A toutes fins utiles :
ActiveDocument.Fields.Update
met à jour les champs (mais pas dans les pdp)
et pour les pieds de page :
Sub MAJ_champ_entete_pdp()
Dim oField As Field
Dim oSection As Section
Dim oHeader As HeaderFooter
Dim oFooter As HeaderFooter

For Each oSection In ActiveDocument.Sections

For Each oHeader In oSection.Headers
If oHeader.Exists Then
For Each oField In oHeader.Range.Fields
oField.Unlink
Next oField
End If
Next oHeader

For Each oFooter In oSection.Footers
If oFooter.Exists Then
For Each oField In oFooter.Range.Fields
oField.Unlink
Next oField
End If
Next oFooter

Next oSection


End Sub
Tu peux aussi essayer de voir le champ AUTOTEXT.
AB

"Séb" a écrit dans le message de news:
exTsr$

"AB" a écrit dans le message de news:

Bonjour Seb,
Tu as suivi les bonnes options : un signet pour la 1ère occurrence, et
des renvois à ce signet pour les autres.
C'est probablement, en effet, la solution la plus propre. Ce qui n'est
pas difficile, car à ma connaissance, il n'y en a pas d'autre...
AB


Bonsoir,

La suite de mes recherche m'a laissé croire que j'étais effectivemen sur
la bonne voie.
Seul regrêt que j'ai, la non mise à jour automatique des champs (les
renvois, en l'occurence), surtout dans les en-têtes et pieds de pages.
Mais bon, ça va bien se contourner, je vais m'orienter vers cela.

Séb




Avatar
Séb

Rebonsoir,
A toutes fins utiles :
ActiveDocument.Fields.Update
met à jour les champs (mais pas dans les pdp)
et pour les pieds de page :
Sub MAJ_champ_entete_pdp()
Dim oField As Field
Dim oSection As Section
Dim oHeader As HeaderFooter
Dim oFooter As HeaderFooter

For Each oSection In ActiveDocument.Sections

For Each oHeader In oSection.Headers
If oHeader.Exists Then
For Each oField In oHeader.Range.Fields
oField.Unlink
Next oField
End If
Next oHeader

For Each oFooter In oSection.Footers
If oFooter.Exists Then
For Each oField In oFooter.Range.Fields
oField.Unlink
Next oField
End If
Next oFooter

Next oSection


End Sub
Tu peux aussi essayer de voir le champ AUTOTEXT.
AB


Merci beaucoup pour les précisions !

Une dernière question (pour la route...) : je cherche à faire sélectionner
un fichier par l'utilisateur, via une boîte de dialogue (et donc pas par un
Documents.Open), mais je n'arrive pas à l'afficher. Mes lointains souvenirs
de VB me rappellent un Common Controls, que je ne retrouve pas.
Sous Excel, j'arrive à mes fins en faisant un Application.GetOpenFilename
mais ça ne fonctionne pas sous Word (ou alors j'ai oublié une référence ?).

Merci,

Séb

Avatar
Geo

Une dernière question (pour la route...) : je cherche à faire sélectionner
un fichier par l'utilisateur, via une boîte de dialogue (et donc pas par un
Documents.Open), mais je n'arrive pas à l'afficher. Mes lointains souvenirs
de VB me rappellent un Common Controls, que je ne retrouve pas.


Sauf erreur de ma part, ça ne marche que dans les UserForms.
utilisez : Dialogs(wdDialogFileOpen).Show

--
A+

Avatar
Séb


Sauf erreur de ma part, ça ne marche que dans les UserForms.
utilisez : Dialogs(wdDialogFileOpen).Show

--
A+



Merci, mais... :D
... ça m'ouvre une boite dans laquelle je choisis un fichier que Word va
tenter d'ouvrir à tout prix.
En fait ce qui m'intéresse, c'est de récupérer un nom de fichier (classeur
Excel en l'occurence) dans lequel j'irai puiser des données. Et dans ce cas,
il est assez malvenu que Word essaie de l'ouvrir ! ;)

Séb

Avatar
Geo




Sauf erreur de ma part, ça ne marche que dans les UserForms.
utilisez : Dialogs(wdDialogFileOpen).Show

--
A+



Merci, mais... :D
... ça m'ouvre une boite dans laquelle je choisis un fichier que Word va
tenter d'ouvrir à tout prix.
En fait ce qui m'intéresse, c'est de récupérer un nom de fichier (classeur
Excel en l'occurence) dans lequel j'irai puiser des données. Et dans ce cas,
il est assez malvenu que Word essaie de l'ouvrir ! ;)

Séb


Désolé j'avais mal compris.
utilisez FileDialog

--
A+