Insérer une numérotation automatique dans word, mais pas des titres

JediMac

Membre expert
Club iGen
26 Octobre 2000
6 521
213
là-bas si j'y suis !
Bonjour,

Je dois éditer des factures comportant un n°, avec word.
Ces factures sont composées à partir d'informations d'Excel, via un publipostage, mais je ne peux pas mettre ce n° dans Excel.
Du coup, je me suis dit qu'il devait bien y avoir un moyen de les ajouter dans word, en utilisant les champs, mais je n'y arrive pas.
La numérotation reste sur 1 pour chaque facture, puisqu'elles sont séparées par un saut de section après la fusion.

Une idée ?
Je précise qu'il faut que je puisse choisir le n° de départ.

Merci
 
Pas sûr d'avoir bien saisi ce que tu cherches à faire, ni de savoir de quelle version de Word il est question. Ceci dit, on peut te recommander de te baser sur cette page de la FaqWord. Cela concerne certes les versions pour Windows, mais ça fonctionne sur Mac sans problème particulier avec un minimum d'adaptation de la macro, qui devient quelque chose comme ça (testé sur Word 2016) :

Bloc de code:
Sub AutoNew()
Dim Num, chemin_doc As String
'Mettre le chemin du dossier où doit se trouver le document
dossier = "/Users/TonNomAbrege/Desktop/"
'Mettre le nom par défaut du fichier nouvellement créé
nom_nouveau_doc = "MaFacture "
On Error GoTo erreur:
  Num = ActiveDocument.AttachedTemplate.AutoTextEntries("numéro").Value
  Num = Num + 1
  ActiveDocument.AttachedTemplate.AutoTextEntries("numéro").Value = Num
  Num = Right("0000" & Num, 4)
  Selection.TypeText Text:="Facture numéro : " & Num
  ActiveDocument.AttachedTemplate.Save
  NouveauNom = dossier & nom_nouveau_doc & Num & ".docx"
  ActiveDocument.SaveAs FileName:=NouveauNom
  Exit Sub

erreur:
 MsgBox "Une erreur est survenue"
End Sub
 
Bon ben c'est raté :bored:.
J'ai trouvé où taper ce code, mais impossible d'enregistrer le document, ou alors je supprime la macro.
Ensuite lorsque je clique sur le bouton "lecture" de la fenêtre VBA, ça bloque et sélectionne la ligne "On Error GoTo erreur:". Le message d'erreur est "Erreur de compilation", "Étiquette non définie".

Bref je patine dur.
 

Fichiers joints

  • image.webp
    image.webp
    80 bytes · Affichages: 256
Alors, il te faut :
  • Dans un premier temps créer un modèle ("Enregistrer sous..." au format .dotm) auquel tu donnes le nom que tu veux, à l'emplacement que tu veux (mes tests, je les ai fait sur le bureau)
  • Il te faut ensuite créer une "Insertion automatique" (menu "Insérer") avec le premier numéro de facture à utiliser
  • Dans ton modèle, tu enregistres la macro dans la feuille de code "ThisDocument"
  • Tu corriges la macro en fonction de tes besoins. En particulier le chemin d'accès au dossier où tu souhaites retrouver tes factures (variable "dossier") et le nom que tu veux donner à tes factures (variable "nom_nouveau_doc")
  • Tu n'oublies pas d'enregistrer le tout et tu fermes ton modèle
  • Maintenant, si tu double-cliques sur le modèle, ça devrait te créer un nouveau document et l'enregistrer à l'emplacement prévu.
Si ça ne se présente pas comme ça chez toi, peux-tu détailler ce que tu fais, ce que tu observes ?

Si ça ne marche pas comme prévu, ouvre ton modèle via le menu "Fichier" > "Ouvrir..." (ce qui ouvre le modèle, pas un document créé à partir du modèle) et exécute la macro en pas à pas, pour voir à quel moment ça décroche... Apparemment, l'image que tu as essayé de mettre en pièce jointe n'est pas passée ou elle est vide...

Le message d'erreur que tu signales semble correspondre à l'absence de l'insertion automatique "numéro". Est-ce que tu as bien créé cette insertion automatique ?
 
  • Dans un premier temps créer un modèle ("Enregistrer sous..." au format .dotm) auquel tu donnes le nom que tu veux, à l'emplacement que tu veux (mes tests, je les ai fait sur le bureau
Ha déjà, j'essayais en .dotx, je ne connaissais même pas le .dotm. Pour ça c'est bon
  • Il te faut ensuite créer une "Insertion automatique" (menu "Insérer") avec le premier numéro de facture à utiliser
Effectivement je n'avais pas fait ça. Je suis donc aller dans "Insérer" => "Insertion automatique" et là j'ai ajouté à la liste existante, l'insertion nommée "numéro", mais je ne vois pas où indiquer le 1er n°. J'ai cliqué sur le bouton "insérer", ce qui a provoqué l'insertion du mot "numéro" à l'emplacement du curseur. Je dis "mot" parce que ça ne semble pas être un champ, il n'est pas surligné.
  • Dans ton modèle, tu enregistres la macro dans la feuille de code "ThisDocument"
  • Tu corriges la macro en fonction de tes besoins. En particulier le chemin d'accès au dossier où tu souhaites retrouver tes factures (variable "dossier") et le nom que tu veux donner à tes factures (variable "nom_nouveau_doc")
C'est fait, j'ai indiqué tout le chemin pour accéder au fichier (on peut mettre des espaces ?) entre guillemets. J'ai aussi donné un nom au document.
À quoi sert [NouveauNom = dossier & nom_nouveau_doc & Num & ".docx"] ?
  • Tu n'oublies pas d'enregistrer le tout et tu fermes ton modèle
Fait
  • Maintenant, si tu double-cliques sur le modèle, ça devrait te créer un nouveau document et l'enregistrer à l'emplacement prévu.
Ce serait trop beau ! Lorsque je double-clique, j'ai bizarrement 2 fois la demande d'autorisation de se connecter au fichier excel pour faire la liaison, mais bon je valide. Ensuite la même alerte de Visual basic s'affiche.
 
Dernière édition:
J'ai trouvé comment mettre ce n° à incrémenter !
Dans le .docx lié à Excel, j'ai ajouté une formule en me servant du champ {Section} qui renvoie le n° de la section, auquel j'ai additionné le nombre nécessaire pour que la somme fasse le n° de la 1ère facture.
Dans mon cas, le 1er n° devant être 73, ça donne : {=72+{Section} }.
Lorsque je fusionne, les documents affichent tous le même n° de facture, mais en sélectionnant tout puis en actualisant les champs, la numérotation devient bien incrémentielle !
La même chose avec le champ {PAGE} ne fonctionne pas, puisqu'après la fusion toutes les pages qui sont séparées par des sauts de section, ont le n°1.
 
Dans le .docx lié à Excel, j'ai ajouté une formule en me servant du champ {Section} qui renvoie le n° de la section, auquel j'ai additionné le nombre nécessaire pour que la somme fasse le n° de la 1ère facture.
Dans mon cas, le 1er n° devant être 73, ça donne : {=72+{Section} }.
Lorsque je fusionne, les documents affichent tous le même n° de facture, mais en sélectionnant tout puis en actualisant les champs, la numérotation devient bien incrémentielle !
C'est un peu tordu, comme méthode, mais sans savoir précisément d'où tu pars ni ce que tu cherches à obtenir, j'ai un peu de mal à suivre.

Pour ce qui est des champs, c'est normal, c'est effectivement comme ça que ça fonctionne (on n'est pas dans Excel ! ;))

La même chose avec le champ {PAGE} ne fonctionne pas, puisqu'après la fusion toutes les pages qui sont séparées par des sauts de section, ont le n°1.
Pas nécessairement. Si la numérotation des pages se fait en liant le pied de page au précédent, ça ne repartira pas à 1 pour chaque section :

Capture d’écran.webp