Mise à jour des champs sous WORD
Fermé
Guitou2804
-
8 mai 2010 à 13:55
m@rina Messages postés 21078 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 13 novembre 2024 - 9 mai 2010 à 23:45
m@rina Messages postés 21078 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 13 novembre 2024 - 9 mai 2010 à 23:45
A voir également:
- Word mettre à jour tous les champs
- Espace insécable word - Guide
- Mettre à jour ses pilotes - Guide
- Mettre a jour chrome - Accueil - Applications & Logiciels
- Supprimer une page word - Guide
- Organigramme word - Guide
9 réponses
m@rina
Messages postés
21078
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
13 novembre 2024
11 350
8 mai 2010 à 23:28
8 mai 2010 à 23:28
Bonjour,
J'ai pas l'intégralité de vos échanges, mais... un pdf n'est qu'une impression.
Or, par défaut, les champs se mettent à jours lors de l'impression (à régler éventuellement dans les options si cela a été modifié).
m@rina
J'ai pas l'intégralité de vos échanges, mais... un pdf n'est qu'une impression.
Or, par défaut, les champs se mettent à jours lors de l'impression (à régler éventuellement dans les options si cela a été modifié).
m@rina
sriviere
Messages postés
853
Date d'inscription
jeudi 21 janvier 2010
Statut
Membre
Dernière intervention
2 mai 2013
410
8 mai 2010 à 20:20
8 mai 2010 à 20:20
Si ton utilisateur sauvegarde en .pdf dès qu'il a terminé de remplir le doc, le pdf s'occupe aussi de mettre à jour les champs puisque la sauvegarde qu'il effectue prend cela en charge.
Si ton utilisateur ne passe pas par là, il te faudrait une petite macro qui remplit cette fonction.
A+, j'y retourne.
Si ton utilisateur ne passe pas par là, il te faudrait une petite macro qui remplit cette fonction.
A+, j'y retourne.
sriviere
Messages postés
853
Date d'inscription
jeudi 21 janvier 2010
Statut
Membre
Dernière intervention
2 mai 2013
410
8 mai 2010 à 15:50
8 mai 2010 à 15:50
Bonjour,
Voici un code VBA issu du site de Marina (https://faqword.com/index.php/wfaq/champs/703-quelle-est-la-difference-entre-un-champ-ask-et-un-champ-fillin-.html pour la mise à jour des champs.
Tu vas voir, c'est simple à enregistrer et comme tu as l'air d'être débrouillard et imaginatif, ça ne devrait pas te faire peur (si je peux me permettre) et par ailleurs, la VBA, c'est tout à fait jubilatoire !
Tu vas aller dans les macros, tu vas cliquer sur "Nouvelle macro", "Enregistrer une nouvelle macro" (tu essaies de te souvenir du numéro de la nouvelle macro), et tu cliques sur OK. Tu vas avoir un petit enregistreur qui va s'installer sur ton écran avec deux boutons, tu cliques tout de suite sur "Arrêter l'enregistrement".
A partir de là, tu vas avoir la place de mettre la macro ci-dessous.
Sub mise_a_jour()
For Each champ In ActiveDocument.Range.Fields
champ.Update
Next champ
End Sub
Ensuite, tu vas entrer dans "Macros", tu vas descendre jusqu'au numéro de la macro que tu viens de créer et tu vas copier les lignes de la macro ci-dessus que tu vas coller en lieu et place de ton Sub Macro n° xxx jusqu'à et y compris End Sub.
Ensuite, tu retournes dans ton fichier puis tu retournes dans Macros, tu vas chercher la macro nommée Mise_à_jour et tu vas cliquer sur Exécuter.
Ta macro va s'exécuter et tes champs vont se mettre à jour.
Si cela t'intéresse, je peux te dire comment faire un raccourci clavier pour exécuter ta macro, si tu me dis sur quelle version de Word tu es car c'est différent d'une version à l'autre.
Voici un code VBA issu du site de Marina (https://faqword.com/index.php/wfaq/champs/703-quelle-est-la-difference-entre-un-champ-ask-et-un-champ-fillin-.html pour la mise à jour des champs.
Tu vas voir, c'est simple à enregistrer et comme tu as l'air d'être débrouillard et imaginatif, ça ne devrait pas te faire peur (si je peux me permettre) et par ailleurs, la VBA, c'est tout à fait jubilatoire !
Tu vas aller dans les macros, tu vas cliquer sur "Nouvelle macro", "Enregistrer une nouvelle macro" (tu essaies de te souvenir du numéro de la nouvelle macro), et tu cliques sur OK. Tu vas avoir un petit enregistreur qui va s'installer sur ton écran avec deux boutons, tu cliques tout de suite sur "Arrêter l'enregistrement".
A partir de là, tu vas avoir la place de mettre la macro ci-dessous.
Sub mise_a_jour()
For Each champ In ActiveDocument.Range.Fields
champ.Update
Next champ
End Sub
Ensuite, tu vas entrer dans "Macros", tu vas descendre jusqu'au numéro de la macro que tu viens de créer et tu vas copier les lignes de la macro ci-dessus que tu vas coller en lieu et place de ton Sub Macro n° xxx jusqu'à et y compris End Sub.
Ensuite, tu retournes dans ton fichier puis tu retournes dans Macros, tu vas chercher la macro nommée Mise_à_jour et tu vas cliquer sur Exécuter.
Ta macro va s'exécuter et tes champs vont se mettre à jour.
Si cela t'intéresse, je peux te dire comment faire un raccourci clavier pour exécuter ta macro, si tu me dis sur quelle version de Word tu es car c'est différent d'une version à l'autre.
Alors, j'ai Word 2007, j'ai rentré le code que tu m'as fourni mais il me met "membre de méthode ou de données introuvable"....
Et en fait d'après ce que je comprends il faudrait exécuter la macro mais je voudrais que cela se fasse "à l'insu" de l'utililisateur....
Le code que j'avais trouvé et qui marchait à moitié est le suivant :
Sub FileSave()
Dim x As Single
'sauvegarde puis mets à jour les champs
ActiveDocument.Save
For x = 1 To 3
ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Fields(x).Update
Next
End Sub
Je n'ai aucune idée de ce qu'il veut dire.... Tout ce que je sais c'est que la personne à qui on a répondu ce code avait à peu pres le même souhait que moi alors je l'ai utilisé, mais le problème c'est que la MàJ ne se faisait pas pour le LastSavedBy qui est dans le corps du document, alors que celle de RevNum et de SaveDate situés dans l'en tete, se faisait...
Enfin en tout cas merci pour cette première réponse, la je viens de me battre 3h avec Excel pour arriver à avoir un numéro de semaine en fonction de la date, et la date d'un jour de la semaine en fonction du numéro de la semaine.... Enfin bref... Galère quoi, sans compter ces mises en formes conditionnelles qui me rendent dingue.... :s
Merci beaucoup.
Guillaume.
Et en fait d'après ce que je comprends il faudrait exécuter la macro mais je voudrais que cela se fasse "à l'insu" de l'utililisateur....
Le code que j'avais trouvé et qui marchait à moitié est le suivant :
Sub FileSave()
Dim x As Single
'sauvegarde puis mets à jour les champs
ActiveDocument.Save
For x = 1 To 3
ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Fields(x).Update
Next
End Sub
Je n'ai aucune idée de ce qu'il veut dire.... Tout ce que je sais c'est que la personne à qui on a répondu ce code avait à peu pres le même souhait que moi alors je l'ai utilisé, mais le problème c'est que la MàJ ne se faisait pas pour le LastSavedBy qui est dans le corps du document, alors que celle de RevNum et de SaveDate situés dans l'en tete, se faisait...
Enfin en tout cas merci pour cette première réponse, la je viens de me battre 3h avec Excel pour arriver à avoir un numéro de semaine en fonction de la date, et la date d'un jour de la semaine en fonction du numéro de la semaine.... Enfin bref... Galère quoi, sans compter ces mises en formes conditionnelles qui me rendent dingue.... :s
Merci beaucoup.
Guillaume.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sriviere
Messages postés
853
Date d'inscription
jeudi 21 janvier 2010
Statut
Membre
Dernière intervention
2 mai 2013
410
Modifié par sriviere le 8/05/2010 à 20:06
Modifié par sriviere le 8/05/2010 à 20:06
Hello,
Je te réponds vite, parce que je viens de lire ta réponse, mais je suis en plein boulot et je me prends deux minutes pour respirer... dans ce que je vois et ce que je comprends, mais je débute en macros, c'est que dans le code que tu as collé, la mise à jour ne se fait que sur 3 champs et non la totalité. C'est pour ça que tu n'as pas la mise à jour de LastSaveBy, s'il vient en 4ème position
For x = 1 To 3 qui est renvoyé à Range.Fields(x) et par ailleurs, ne se fait que dans le wdHeaderFooterPrimary (ou entête, pied de page) et non dans le corps du texte. Tu pourrais avantageusement coller la macro de Marina à la place.
Ceci dit, avant de te donner le code de Marina, je me disais qu'il suffisait de "mettre à jour les champs", tout simplement par un clic droit de la souris ou par F9. Une macro, c'est peut-être superfétatoire, en l'occurrence, mais j'ai vu très très vite qu'il y avait des champs qui nécessitaient une mise à jour autre.
Je n'ai pas approfondi parce que je carbure, maintenant, mais, je vais m'y replonger dès que j'ai 5 minutes.
Cependant, essaie F9 ou clic droit souris, c'est, en fait, le principe de la mise à jour "ordinaire" dirions-nous.
Si tu as des problèmes de mises en forme conditionnelles, pose ta question, il y a des balèzes d'Excel ici, ils t'aideront.
A+
Je te réponds vite, parce que je viens de lire ta réponse, mais je suis en plein boulot et je me prends deux minutes pour respirer... dans ce que je vois et ce que je comprends, mais je débute en macros, c'est que dans le code que tu as collé, la mise à jour ne se fait que sur 3 champs et non la totalité. C'est pour ça que tu n'as pas la mise à jour de LastSaveBy, s'il vient en 4ème position
For x = 1 To 3 qui est renvoyé à Range.Fields(x) et par ailleurs, ne se fait que dans le wdHeaderFooterPrimary (ou entête, pied de page) et non dans le corps du texte. Tu pourrais avantageusement coller la macro de Marina à la place.
Ceci dit, avant de te donner le code de Marina, je me disais qu'il suffisait de "mettre à jour les champs", tout simplement par un clic droit de la souris ou par F9. Une macro, c'est peut-être superfétatoire, en l'occurrence, mais j'ai vu très très vite qu'il y avait des champs qui nécessitaient une mise à jour autre.
Je n'ai pas approfondi parce que je carbure, maintenant, mais, je vais m'y replonger dès que j'ai 5 minutes.
Cependant, essaie F9 ou clic droit souris, c'est, en fait, le principe de la mise à jour "ordinaire" dirions-nous.
Si tu as des problèmes de mises en forme conditionnelles, pose ta question, il y a des balèzes d'Excel ici, ils t'aideront.
A+
Non c'est bon j'ai terminé pour excel, et j'ai réussi à faire ce que je voulais ! :D
Pour mon problème effectivement un F9 marche très bien, mais comme je te l'ai dit, je voudrais que cela se fasse automatiquement, vu que le document peut être révisable par n'importe qui, qui ne pensera pas forcément à faire un F9, le code que j'avais trouvé dans un premier temps était génial pour ça, en cliquant sur enregistrer cela mettait les champs à jour sans problème... Effectivement je m'étais dis que cette variable X pouvait avoir un rapport avec le nombre de champs... J'avais donc essayé en mettant un autre chiffre que 3, mais je crois que cela me mettait un message d'erreur, et ne comprenant pas du tout ce langage j'ai abandonné rapidement cette idée...
Mais que je sache sur la première page j'ai un champ RevNum, puis Page, NumPages, et enfin SaveDate dans l'en tete, un champ FileName, puis Page et NumPages dans le pied de page ; et enfin sur ma première page dans un tableau un champ CreateDate et un autre LastSaveBy. Après à part une table des matières je n'ai rien d'autre dans le document...
Merci d'accorder un peu de temps en tout cas, moi aussi je bosse, je finis mes procédures.... Vive les démarches qualité... :-(
Guillaume.
Pour mon problème effectivement un F9 marche très bien, mais comme je te l'ai dit, je voudrais que cela se fasse automatiquement, vu que le document peut être révisable par n'importe qui, qui ne pensera pas forcément à faire un F9, le code que j'avais trouvé dans un premier temps était génial pour ça, en cliquant sur enregistrer cela mettait les champs à jour sans problème... Effectivement je m'étais dis que cette variable X pouvait avoir un rapport avec le nombre de champs... J'avais donc essayé en mettant un autre chiffre que 3, mais je crois que cela me mettait un message d'erreur, et ne comprenant pas du tout ce langage j'ai abandonné rapidement cette idée...
Mais que je sache sur la première page j'ai un champ RevNum, puis Page, NumPages, et enfin SaveDate dans l'en tete, un champ FileName, puis Page et NumPages dans le pied de page ; et enfin sur ma première page dans un tableau un champ CreateDate et un autre LastSaveBy. Après à part une table des matières je n'ai rien d'autre dans le document...
Merci d'accorder un peu de temps en tout cas, moi aussi je bosse, je finis mes procédures.... Vive les démarches qualité... :-(
Guillaume.
Effectivement la réponse à mes problèmes vient d'être apportée ! Enregistrer en PDF permet de mettre à jour les champs ! C'est magique !
Par contre maintenant j'ai une autre question, comment puis je remettre à zéro le champ RevNum? Parce que ma version actuelle est la version A mais vu le nombre d'enregistrement que j'ai fait pour tester la fonction, j'en suis à la version U....
Par contre maintenant j'ai une autre question, comment puis je remettre à zéro le champ RevNum? Parce que ma version actuelle est la version A mais vu le nombre d'enregistrement que j'ai fait pour tester la fonction, j'en suis à la version U....
sriviere
Messages postés
853
Date d'inscription
jeudi 21 janvier 2010
Statut
Membre
Dernière intervention
2 mai 2013
410
9 mai 2010 à 21:27
9 mai 2010 à 21:27
Hello,
Je n'ai jamais utilisé ce champ, mais je me demandais pourquoi ne mettrais-tu pas un numéro plutôt qu'une lettre à ta version ?
A+
Je n'ai jamais utilisé ce champ, mais je me demandais pourquoi ne mettrais-tu pas un numéro plutôt qu'une lettre à ta version ?
A+
m@rina
Messages postés
21078
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
13 novembre 2024
11 350
9 mai 2010 à 23:45
9 mai 2010 à 23:45
Bonsoir,
Le champ REVNUM est un champ Propriétés Stastistiques d'un document, et bien entendu non modifiable puisqu'il représente le nombre de fois qu'un document a été enregistré.
La seule solution est d'enregistrer le fichier sous pour redémarrer à 1.
Circé
https://faqword.com/
Le champ REVNUM est un champ Propriétés Stastistiques d'un document, et bien entendu non modifiable puisqu'il représente le nombre de fois qu'un document a été enregistré.
La seule solution est d'enregistrer le fichier sous pour redémarrer à 1.
Circé
https://faqword.com/