Bonjour à tous,
Normalement je trouve toujours mes réponses en cherchant sur internet mais là je me suis inscrits et sollicite votre aide car je suis bloqué depuis quelques jours.
Je dois réaliser un outil sous Excel pour mon entreprise: générer des documents Word à partir des informations saisies dans Excel. Ex: nom client, coordonnées, version du document, etc. Les employés saisissent seulement les informations dans les cellules, puis cliquent sur un bouton pour générer le document. La macro va chercher le document Word modèle et les informations sont reportées directement vers des signets:
WordDoc.Bookmarks("date1").Range.Text = Sheets("Informaciones generales").Range("C12").Value
Je ne peux pas faire du publipostage puisque les documents sont différents selon les clients.
Jusque ici tout va bien, sauf que les documents évoluent. Ainsi ma macro va en permanence rechercher le dernier document Word créé. Sauf que lors de l'actualisation (ex: numéro de version changée), je me retrouve avec toutes les informations en double au niveau des signets. C'est à dire que le texte n'est pas modifié mais ajouté à droite du texte de l'ancienne version.
Après recherche il serait plus facile de passer par des champs:
WordDoc.Fields("date1").Result.Text = "valeur a reporter"
Sauf que je ne sais pas comment définir ce fameux "Fields" dans Word. Je sais que c'est un champ, ctrl+F9, mais je ne sais pas quoi mettre dedans.
J'ai également trouvé cette formule qui me renvoie des erreurs:
1 2 3 4 5 6
| Dim objRange As Range
Set objRange = ActiveDocument.Bookmarks.Item("date1").Range
objRange.Text = Sheets("Informaciones generales").Range("C12").Value
ActiveDocument.Bookmarks("date1").Range.Select
Selection.Text = Sheets("Informaciones generales").Range("C12").Value
objRange.Bookmarks.Add "date1" |
J'espère que j'ai été clair et que vous pourrez m'aider.
Merci d'avance
Partager