Mon problème est simple, toutes les semaines j'imprime une centaine de documents WORD sur lesquels il est nécessaire d'inscrire le numéro de la semaine calendaire en cours, et bien évidemment à la main. Vous vous doutez bien que ce n'est pas ce qu'il y a de plus passionnant. Quelqu'un connait-il une astuce pour insérer en automatique ce numéro de semaine?
Dans le document joint tu trouveras une fonction personnalisée (vba) nommée NoSemaine()
qui renvoie le numéro de la semaine ISO de la date qui lui est passé en paramètre.
Dans ThisDocument_Open
Création d'une variable nommée NuméroSemaine qui contient le numéro de semaine en cours
Ensuite cette variable est insérée dans le document par un code de champ.
Sub ecrireSemaine()
Selection.EndKey Unit:=wdStory
Selection.TypeParagraph
Selection.TypeText Text:="Numéro de semaine : " & NoSemaine
End Sub
Ca marche bien, comme toujours avec Hasco
En fait je croyais que ça se ferait à l'ouverture du fichier, mais non
Code:
Private Sub Document_Open()
On Error Resume Next
ThisDocument.Variables.Add "NuméroSemaine", NoSemaine(Date)
If Err.Number <> 0 Then ThisDocument.Variables("NuméroSemaine") = NoSemaine(Date)
End Sub
J'ai mis le résultat de la fonction NoSemaine dans une variable document. Pour pouvoir s'en servir dans un champ {DOCvariable...}, mais ce n'est effectivement pas obligé.
On peut bien-sûr, comme tu l'as fait la mettre en 'dur' dans un texte.
Document_Open se contente de charger le numéro de semaine en cours dans une variable Document. C'est le champ {DOCVARIABLE NuméroSemaine \* MERGEFORMAT } qui se charge de l'écrire. Encore faut-il insérer ce champ dans la page.
Merci Hasco, tu fais bien de préciser,
je n'étais sûrement pas la seule à ne pas avoir perçu l'utilité de la procédure à l'ouverture, bien que tu aies parlé d'un code champ,
...et comme j'aime bien tester les programmes qui sont fournis... j'ai écrit le petit bout de code qu'il me fallait pour l'écrire sur la feuille...
(je suis une très bonne testeuse, si il y a un blème, je le verrai forcément... car je teste et reteste)
Oui Staple, tu as raison de le souligner, le seul valable est le numéro de semaine ISO il y a de nombreuses discussions à ce sujet sur le site.