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
@ Staple1600
C'est bien ma difficulté... je ne peux pas vraiment fonctionner comme un publipostage classique.

@ laurent950
J'ai l'impression que tu cernes bien ma demande.

Question 1 : Oui, les fichiers excel ont la même "trame"... Ce fichier excel est donc "immuable" ; seules les données à l'intérieur changent. B3 contient toujours un numéro de dossier...

Question 2 : je ne suis pas sûr de comprendre la question, mais non... le numéro de dossier n'est pas dans le nom du fichier excel... mais cela peut se concevoir. On aurait une année et un numéro de dossier pour identifier le fichier. En revanche, je ne saisis pas forcément l'intérêt ou la nécessité.

Question 3 : OK... mais établir une base de données uniquement pour l'export ? En fait, sur mes 200 à 250 lignes j'ai des informations qui viennent alimenter le document word... en page 1 et 8 par exemple je reprends les mêmes données... certaines de ces données sont issues de calculs ou de conditions définies sous excel, cela me permet d'automatiser mon remplissage de documents.
 

Staple1600

XLDnaute Barbatruc
Re

@LMOAL
Bon, je vous laisse vous compliquer la vie ;)

Quand ca veut pas, ca veut pas

@laurent950 allez, enfile ta panoplie "Kissienophobe"

laurent950 à dit:
Je pense surtout que @LMOAL ne maitrise pas assez le VBA
C'est très simple
Elle est bien bonne ;)
C'est pourquoi justement , je viens d'écrire
Staple à dit:
C'est pour cela que je suggérais le plus simple: PAS DE VBA
-> hop, zou direction, le publipostage
 

LMOAL

XLDnaute Nouveau
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 ?
Personne ne m'emmêle les pinceaux... j'ai juste du mal à voir comment mettre en oeuvre un publipostage dans cette configuration. Ou alors, une fois rempli ma feuille excel, je viens reprendre les données dans une autre feuille qui elle sert de base de donnée ?
@Staple1600 pour te répondre

je pense surtout que @LMOAL ne maitrise pas assez le VBA
C'est très simple
Pas impossible... En fait, la question que je me pose avant même de coder d'avantage en VBA est la suivante : copier/collage spécial ou signets ou autre solution... Qu'est-ce qui serait le plus adapté ?

Aujourd'hui, je n'ai pas creusé plus que :

1) je remplis mon fichier excel
2) un fichier word est lié à cet excel avec un chemin "de base"
3) je viens dire "on remplace le chemin de base par un nouveau chemin qui est celui du doc excel que l'on a rempli"
4) une fois la liaison établie, je peux mettre à jour mes liens si besoin

J'ai parfois des pertes de chemin... et je voulais optimiser le fonctionnement. Avant cela, je vous m'assurer que la démarche était la meilleure !
 

Staple1600

XLDnaute Barbatruc
Re

@LMOAL
OK, comment suggéreriez-vous ce publipostage alors ?
Comme je l'ai expliqué plus bas
(dans le message#13)

Mais pour aller plus loin, ce serait un plus de fournir trois documents
• Un exemple de base de données (fichier Excel)
(10 lignes suffiront)
la 1ère ligne = les entetes pour les champs de fusion dans Word
• un document Word (pour la fusion)
• un document WORD (exemple d'une fusion pour 1 enregistrement) fait manuellement

Une fois, ces document joints par tes soins, je pourrais te poser mon interprétation de ta question par le biais d'un publipostage
 

LMOAL

XLDnaute Nouveau
Re @LMOAL

2) un fichier word est lié à cet excel avec un chemin "de base"
Cela peut être rapide, par exemple pour le chemin
ecrivez le nom du fichier excel = le nom du fichier.xlsx
Mais vous y ajouter la clé unique le numéro de dossier toujours pareilles
le nom du fichier - Dos yy565ax.xlsx
Choisiser le séparateur (- ou _ Ou un autres) dans le numéro de dossier
après le séparateur, on ne doit jamais retrouver le séparateur dans la chaine
exemple : Dos yy565ax (Bon) / le nom du fichier - Dos yy565ax.xlsx
Dos - yy 565 - ax (Pas bon) / le nom du fichier - Dos - yy 565 - ax.xlsx
Dos _ yy565 _ ax (Bon) / le nom du fichier - Dos _ yy565 _ ax.xlsx

La liaison sera établit avec le code unique du numéro de dossier
3) je viens dire "on remplace le chemin de base par un nouveau chemin qui est celui du doc excel que l'on a rempli"
4) une fois la liaison établie, je peux mettre à jour mes liens si besoin
3 et 4 n'est plus un problème
OK, si je comprends bien vous me dites qu'en donnant un nom unique à mon fichier excel cela "stabiliserait" les fichiers ?
Aujourd'hui, si vous avez téléchargé mes fichiers, en entrant dans word on me demande si je veux actualiser mes liens. Je réponds non... en cliquant sur ma macro de mise à jour, je viens remplacer le lien de départ par un autre chemin, celui du fichier excel que j'ai rempli.
Pour arriver à ça, je suis passé par des "collages spéciaux"... vous me dites de créer des signets word à la place de ce collage spécial ?



Re

@LMOAL

Comme je l'ai expliqué plus bas
(dans le message#13)

Mais pour aller plus loin, ce serait un plus de fournir trois documents
• Un exemple de base de données (fichier Excel)
(10 lignes suffiront)
la 1ère ligne = les entetes pour les champs de fusion dans Word
• un document Word (pour la fusion)
• un document WORD (exemple d'une fusion pour 1 enregistrement) fait manuellement

Une fois, ces document joints par tes soins, je pourrais te poser mon interprétation de ta question par le biais d'un publipostage
C'est bien pour cette raison que je n'ai pas fait de publipostage... mon fichier excel ne se présente pas comme une base de donnée. Devant ton insistance, que je peux comprendre, la seule solution que je peux imaginer pour y arriver est celle-ci : la reprise des données de la première feuille sous un format horizontal... mais on a 250 références, donc 250 colonnes pour 1 ligne.
 

Pièces jointes

  • CADRE PV ET RAPPORT à remplir.xlsx
    12.9 KB · Affichages: 4
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

@LMOAL
La base de données devrait être dans ce genre
BASE_DONNEES.PNG

Comme dit précédemment, il faut juste une base de données, et surtout le document final
(rempli manuellement pour 1 enregistrement)

A partir, de là on peut déduire quels champs de fusion on devra utilisé
(et si besoin basculer dans le publipostage en mode avancé)
 

LMOAL

XLDnaute Nouveau
Re @LMOAL

exemple dans le fichier Word il va y avoir un signet en relation avec Excel
si dans votre cellule Excel : en H2 il est écrit 10H00 Alors l'entête de la colonne H = (Heure) sera le nom du signet dans le document word
ce signet sera un nom unique (il n'y aura pas écrit 2 à plusieurs fois Heure) ni dans les entêtes Excel (Autre colonne Heure exemple A, Y etc.) Heure devient unique et dans word aussi le signet sera unique.
comme cela 10H00 se collera dans le fichier Word a la place du signet Heure (il y a qu'un seule endroit)
Vous avez compris cela aussi ?

si vous écrivez dans Excel NOM 1 alors Word le signets sera écrit pareille NOM 1
Ca c'est du publipostage non ?
 

LMOAL

XLDnaute Nouveau
Re

@LMOAL
La base de données devrait être dans ce genre
Regarde la pièce jointe 1179528

Comme dit précédemment, il faut juste une base de données, et surtout le document final
(rempli manuellement pour 1 enregistrement)

A partir, de là on peut déduire quels champs de fusion on devra utilisé
(et si besoin basculer dans le publipostage en mode avancé)
OK, avez-vous regardé mon dernier fichier excel ? en feuille 2..
Dans votre exemple, vous présentez une base de données... moi je n'ai qu'une ligne. L'intérêt est limité sauf, effectivement, à se dire qu'ainsi on peut essayer le publipostage... mes 250 colonnes sont à reprendre.
C'est ce que j'ai essayé de mettre en oeuvre avant de vous répondre dans un précédent message.
Je comprends ce que vous dîtes, j'essaie d'imaginer comment le mettre en oeuvre.
Je n'aurai qu'un fichier excel associé à mon word... d'où ma macro vba pour changer le chemin et rediriger vers les différents fichiers xl
 

LMOAL

XLDnaute Nouveau
Re

@LMOAL
Le publipostage, c'est le message#29

C'est bien ce que je disais

En courant deux lièvres à la fois, on se mélange les pinceaux !
Le message 28 y ressemble également...

@laurent950 C'est ce que vous proposiez dans un autre post... mais ici mes données sont en colonnes. Je peux définir un non de case excel "heure". Comment puis-je l'intégrer sous word ensuite ?
 

LMOAL

XLDnaute Nouveau
Re

@LMOAL
La base de données devrait être dans ce genre
Regarde la pièce jointe 1179528

Comme dit précédemment, il faut juste une base de données, et surtout le document final
(rempli manuellement pour 1 enregistrement)

A partir, de là on peut déduire quels champs de fusion on devra utilisé
(et si besoin basculer dans le publipostage en mode avancé)
Mon 1er fichier word est une forme de document final... si vous faites alt F9 vous verrez les quelques champs qui proviennent d'excel...
 

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 271
Membres
103 168
dernier inscrit
isidore33