Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Liaisons Word / Excel : quelle solution retenir et comment la mettre en œuvre

LMOAL

XLDnaute Nouveau
Bonjour,
je me permets de remonter cette conversation qui m'intéresse.

J'ai également travaillé ces liaisons word-excel mais je rencontre quelques difficultés qui me posent question.
J'ai un document word "type" qui fait appel à de nombreuses autres références que, pour des raisons de praticité et d'automatisation, je renseigne dans une feuille excel.

Je procède aujourd'hui par la fonction "collage spécial", "coller avec liaison / sans mise en forme". La méthode que j'ai utilisée est celle d'un fichier excel "source" et d'une macro word qui vient changer le chemin d'accès à ce fichier excel pour récupérer les données via une boite d'appel.

ex :

LINK Excel.Sheet.12 "D:\\Prépa\\RAPPORT\\Fichiers source définitifs\\CADRE à remplir.xlsx" "Cadre AG!L1C2" \a \f 5 \h \* MERGEFORMAT

Remplacé par
LINK Excel.Sheet.12 "C:\\DOCUMENTS\\CADRE rempli.xlsx" "Cadre AG!L1C2" \a \f 5 \h \* MERGEFORMAT

Globalement, cela fonctionne... mais lorsque je déplace les fichiers c'est parfois aléatoire et peu satisfaisant et, une fois mon chemin remplacé, tel que j'ai écrit ma macro, je ne peux plus le changer... ce qui est dommage, plus des soucis liés au format.

Je voudrais donc :
1) Remplir un fichier excel avec mes différentes données et informations qui seront reprises dans un fichier word "standard" (plus d'une 100aine de variables : ex. Nom du dossier, adresse, dates, décisions...)
2) A l'entrée dans word, je souhaite pouvoir actualiser mon chemin "à loisir" afin d'intégrer ces données dans le texte "standard" et mettre à jour mon fichier.
3) Enregistrer le word sous sa forme définitive.

J'ai plusieurs interrogations : la méthode "collage spécial" est-elle la plus adaptée ? Ne devrais-je pas partir sur des signets comme évoqué ci-dessus ? Une définition de cellules sous excel ? Quelle méthode me permettrait de conserver l'objectif poursuivi ? Le copier-coller a été fastidieux mais je suis prêt à recommencer si je peux améliorer le tout.

J'ai testé un fichier "modèle" mais c'était lourd, j'ai donc opté pour un .docm et pour ne pas écraser le fichier source, je viens proposer d'enregistrer directement après le choix du chemin... c'est fonctionnel mais pas idéal.

D'avance merci pour vos avis
 

LMOAL

XLDnaute Nouveau
Bonjour,
ReBonjour @LMOAL, le fil

Ce que tu décris ressemble à du publipostage WORD +EXCEL, non ?
(où Excel sert de base de données)

C'est beaucoup plus commode à mettre en ouvre que le collage spécial.

initialement c'était la solution que j'avais imaginé... je pratique le publipostage mais dans le cas présent cela n'est pas adapté.
Bonsoir @LMOAL

Vous avez un fichier Word "type" plus le fichier Excel qui lui est associer ?
Je vous transmets d'ici peu une idée de ce que je veux... j'anonymise le tout.
 

laurent950

XLDnaute Barbatruc
Bonsoir @LMOAL
Je vous transmets d'ici peu une idée de ce que je veux... j'anonymise le tout.

Vous dite :
Je procède aujourd'hui par la fonction "collage spécial", "coller avec liaison / sans mise en forme".

Donc de code VBA, un dans Excel et L'autre dans Word
Si cela change dans Word Excel ce met à jour
Et l inverse
Si cela change dans Excel cela se met à jour dans Word
C'est peut-être réalisable mes complexes.

au plaisir de découvrir votre projet et vos deux fichiers Word et Excel

Avec une description détaillée
Données d entrée
Données de sortie
 
Dernière édition:

LMOAL

XLDnaute Nouveau
A vrai dire, un seul code VBA suffit...
La seule liaison dont j'ai réellement besoin est celle qui va chercher les informations dans Excel... le VBA me sert à cela : il vient remplacer le chemin "type" par celui que je lui donne.

Comme vous le verrez dans la macro, initialement j'ai un lien :

With Selection.Find
.Text = "D:\\PERSO\\RAPPORT\\CADRE PV ET RAPPORT test Fichier source.xlsx"


Que ma macro vient remplacer par mon nouveau chemin... mais ce n'est pas très souple (j'ai rajouté deux macros dans l'onglet personnalisé "sources").

J'ai grandement simplifié mon fichier word qui fait une 20aine de pages... et le fichier excel qui contient des champs jusqu'à 200 ou 250 lignes... une partie de ces champs proviennent d'autres fichiers ou contiennent des données calculées automatiquement.

Dans l'idéal, une fois ouvert le fichier word, on vient indiquer le chemin de l'excel et tous les champs word se mettent à jour... avec une mise en forme qui ne bouge pas.

Aujourd'hui, ça marche... mais je dois parfois modifier les chemins manuellement... et une fois remplacé le chemin, on ne peut plus le changer, sauf à le faire manuellement ou reprendre à zéro. J'ai aussi l'impression que les fichiers excel ne se referment pas après récupération des données... provoquant parfois un crash des applications.

Peut-être faut-il adopter une autre méthode ? Ou alors, je continue avec celle-ci en améliorant ce qui doit l'être.

Merci pour votre avis
 

Pièces jointes

  • CADRE PV ET RAPPORT à remplir.xlsx
    11.8 KB · Affichages: 10
  • Rapport OK 092023.docm
    46.5 KB · Affichages: 7

Staple1600

XLDnaute Barbatruc
Bonsoir

LMOAL à dit:
Peut-être faut-il adopter une autre méthode ? Ou alors, je continue avec celle-ci en améliorant ce qui doit l'être.
C'est que je suggérais sans avoir vu les PJ
je viens de les ouvrir

je confirme que le plus simple serait publipostage WORD+Excel (*)

D'un côté tu demandes avis et conseil, de l'autre tu préfères rester sur ton idée.

Bilan: on fait quoi ?


(*) avec cette solution, ceci a moins de risque de survenir
J'ai aussi l'impression que les fichiers excel ne se referment pas après récupération des données... provoquant parfois un crash des applications.
 

LMOAL

XLDnaute Nouveau
Merci pour vos retour...
Non, non... pas de réticence ; je ferai au plus efficace !

Mes données sont en colonne et doivent le rester : j'exploite les colonnes A à D jusqu'aux lignes 250 / 300.
Pour un même rapport word, je n'ai qu'un fichier excel.

J'avais en tête une exploitation plutôt linéaire du publipostage, du moins c'est mon utilisation d'habitude. On a toutes les données d'un "destinataire" en ligne 2, celles d'un autre en ligne 3, etc...

Ici j'ai 1 destinataire et mes données en colonne ; comment mettre en œuvre ce publipostage ? j'ai bien lu les infos de Kiki29 également...

Merci d'avance
 

Staple1600

XLDnaute Barbatruc
Re

@LMOAL
La base d'un publipostage (c'est le cas de le dire
Une base de données Excel (dans le cas présent) correctement agencé
Un document Word (qui servira pour la fusion)
Utilisation de champs conditionnels, de filtre etc...

On n'a pas un exemple avec des données fictives de ta base de données
(le fichier XL dans le message#6 n'est pas une base de données)
 

Staple1600

XLDnaute Barbatruc
Re

@laurent950
Apparemment la solution citée lui pose problème
C'est pour cela que je suggérais le plus simple: PAS DE VBA
-> hop, zou direction, le publipostage

Et comme nous sommes plusieurs dans le fil à plussoir le publipostage, faudrait pas qu'on emmêle les pinceaux de LMOAL, non ?
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…