Quand j'exécute cette macro "ExporterPDF" directement dans WORD, elle fonctionne mais quand elle est appelée depuis cette macro EXCEL, c'est comme si elle ne se terminait pas et mon fichier n'est pas publiposté.
Dites-moi si je me trompe mais j'ai l'impression que la ligne qui quitte Word s'exécute avant que la macro ait fini de s'exécuter complètement.
Existe-t-il un moyen d'attendre la fin d'exécution de la macro avant de passer à la ligne
Merci pour votre retour.
J'avais d'ailleurs vu ce DoEvent sur un autre sujet et je l'ai testé mais cela ne fonctionne toujours pas.
(En tout cas depuis Excel).
En la lançant depuis Word, cela fonctionne.
Par ailleurs en la lençant depuis Word, elle fonctionne mais j'ai l'impression que le publipostage a lieu en prenant des lignes de la feuille "Source" un peu aléatoirement.
Or j'aimerais que ce soir uniquement la dernière ligne du tableau qui soit prise à chaque fois.
Le but étant de générer à chaque validation une seule fiche, qui correspond à chaque fois aux infos du formulaire qui vient d'être complété. Soit la dernière ligne du tableau Source.
Le problème dans la macro Word est-ce qu'elle traite plusieurs lignes d'un coup. Je n'ai pas réussi à lui faire traiter uniquement la dernière ligne du tableau.
Dans le code Excel, tout tourne sauf que même avec le rajout de DoEvents, je vois Word s'ouvrir et se refermer aussitôt sans avoir l'impression que ExporterPDF s'exécute
@LeForain :
Si le but du modèle Word est de générer un document pour une seule ligne de ton fichier source, une solution serait de ne pas utiliser le publipostage, mais de créer un modèle Word avec des contrôles de contenu.
Ainsi, tu peux facilement en VBA créer un nouveau document basé sur ce modèle et remplir ses contrôles de contenu.
Tu trouveras dans l'archive ci-jointe :
un exemple de modèle Word (Modèle.docx) avec quelques contrôles de contenu ;
ton fichier Excel avec deux macros
la fonction Mod_Word.BuildDocFromListrow qui est dédiée à créer un nouveau document basé sur un template et à partir des données d'une ligne d'un tableau (ListRow) ;
la procédure Mod_Test.TestWord qui crée un document à partir de la dernière ligne du tableau TSource, enregistre le document en pdf et le ferme.
La correspondance entre les colonnes du tableau et les contrôles de contenu se fait avec le titre du contrôle de contenu.