Fusion et VBA

Le
Gen
Bonjour, il y a quelques mois, j'ai posé la question suivante:

Bonjour !

> J'ai un document relié à un fichier excel prêt pour effectuer la fusion des
> champs. Manuellement, je sais comment faire. Cependant, j'aimerais créer
> une macro en vba qui permettrait à l'utilisateur d'effectuer la fusion
> automatiquement à l'aide de la macro. Est-ce possible ?

La macro peut être réalisée dans Word ou dans Excel.
Toutes les subtilités du publipostage (ouverture d'une source, requête sur
les données, destination de la fusion etc.) sont programmables.
Le plus simple pour commencer est d'enregistrer /votre/ procédure de
fusion avec l'enregistreur de macro

Anacoluthe
« L'automatisation : système simplifiant tellement le travail
qu'on finira par avoir besoin d'un cerveau électronique
pour se tourner les pouces. »
- Benjamin SUBAC

Malheureusement, la réponse ne m'a pas aidé puisque l'enregistreur ne semble
pas enregistrer ce type d'opération.

Est-ce que quelqu'un peut m'aider ?

Merci !
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Geo
Le #1608816

Bonjour, il y a quelques mois, j'ai posé la question suivante:
J'ai un document relié à un fichier excel prêt pour effectuer la fusion des
champs. Manuellement, je sais comment faire. Cependant, j'aimerais créer
une macro en vba qui permettrait à l'utilisateur d'effectuer la fusion
automatiquement à l'aide de la macro. Est-ce possible ?


La macro peut être réalisée dans Word ou dans Excel.
Toutes les subtilités du publipostage (ouverture d'une source, requête sur
les données, destination de la fusion etc.) sont programmables.
Le plus simple pour commencer est d'enregistrer /votre/ procédure de
fusion avec l'enregistreur de macro...


Malheureusement, la réponse ne m'a pas aidé puisque l'enregistreur ne semble
pas enregistrer ce type d'opération.

Est-ce que quelqu'un peut m'aider ?


La fusion elle-même n'est pas très compliquée à faire :

Dim Fusion As MailMerge
Dim CourrierType As Document
.......
' Définition de la source pour la fusion document (tableau) word ou
feuille Excel
CourrierType.MailMerge.OpenDataSource xxxxxxxx
Set Fusion = CourrierType.MailMerge
With Fusion
' pour imprimer directement activer la ligne ci-dessous
' .Destination = wdSendToPrinter
.Execute
End With
CourrierType.Close savechanges:úlse
MsgBox " Les courriers sont disponibles"

--
A+



Gen
Le #1608815
Bonjour Geo,

Merci de votre réponse, cependant, j'ai le message d'erreur suivant et je ne
comprend pas: Erreur d'exécution '91: Variable objet ou variable de bloc With
non definie

Est-ce que vous en voyez la raison ?

Merci !



Bonjour, il y a quelques mois, j'ai posé la question suivante:
J'ai un document relié à un fichier excel prêt pour effectuer la fusion des
champs. Manuellement, je sais comment faire. Cependant, j'aimerais créer
une macro en vba qui permettrait à l'utilisateur d'effectuer la fusion
automatiquement à l'aide de la macro. Est-ce possible ?


La macro peut être réalisée dans Word ou dans Excel.
Toutes les subtilités du publipostage (ouverture d'une source, requête sur
les données, destination de la fusion etc.) sont programmables.
Le plus simple pour commencer est d'enregistrer /votre/ procédure de
fusion avec l'enregistreur de macro...


Malheureusement, la réponse ne m'a pas aidé puisque l'enregistreur ne semble
pas enregistrer ce type d'opération.

Est-ce que quelqu'un peut m'aider ?


La fusion elle-même n'est pas très compliquée à faire :

Dim Fusion As MailMerge
Dim CourrierType As Document
........
' Définition de la source pour la fusion document (tableau) word ou
feuille Excel
CourrierType.MailMerge.OpenDataSource xxxxxxxx
Set Fusion = CourrierType.MailMerge
With Fusion
' pour imprimer directement activer la ligne ci-dessous
' .Destination = wdSendToPrinter
.Execute
End With
CourrierType.Close savechanges:úlse
MsgBox " Les courriers sont disponibles"

--
A+








Geo
Le #1608813

Merci de votre réponse, cependant, j'ai le message d'erreur suivant et je ne
comprend pas: Erreur d'exécution '91: Variable objet ou variable de bloc With
non definie

Est-ce que vous en voyez la raison ?


Ma boule de cristal étant en révision, pouvez-vous indiquer votre code
et la ligne qui pose problème ?

--
A+

Gen
Le #1608812
Bonjour,

Voici la ligne qui semble créer problème:

CourrierType.MailMerge.OpenDataSource Name:="C:DocFusion - Communiqué.xls"

Merci !



Merci de votre réponse, cependant, j'ai le message d'erreur suivant et je ne
comprend pas: Erreur d'exécution '91: Variable objet ou variable de bloc With
non definie

Est-ce que vous en voyez la raison ?


Ma boule de cristal étant en révision, pouvez-vous indiquer votre code
et la ligne qui pose problème ?

--
A+






Geo
Le #1608811

Bonjour,

Voici la ligne qui semble créer problème:

CourrierType.MailMerge.OpenDataSource Name:="C:DocFusion - Communiqué.xls"


Vous avez bien fait avant :
Set CourrierType = Documents.Add(basé sur le modèle de courrier) ?

--
A+

Anacoluthe
Le #1622699
Bonjour !

'Gen' nous a écrit ...
Voici la ligne qui semble créer problème:
CourrierType.MailMerge.OpenDataSource Name:="C:DocFusion - Communiqué.xls"


CourrierType n'a pas été défini tout simplement !!!
C'est un objet document
Geo ne l'a pas défini car nous ne savons pas où vous cherchez ce document !
On a parlé d'un document ouvert ou crée par Excel par exemple
Si la macro est lancée dans Word depuis le document lui-même il suffit d'écrire
Set CourrierType = ActiveDocument
avant d'utiliser le code qui en fait mention....
Les bases, les bases d'abord :-)

Anacoluthe
« C'est encore en méditant l'objet
que le sujet a le plus de chance de s'approfondir. »
- Gaston BACHELARD

Gen
Le #1622697
Bonjour à vous deux,

Merci pour votre aide !

J'aurais une autre petite question, est-il possible lde faire le chemin
inverse, à savoir à partir d'une macro en excel fusionner les données de ce
fichier dans un document word contenant les champs de fusion désirés ? Ce
serait plus facile pour moi ainsi !

Merci encore !



Bonjour !

'Gen' nous a écrit ...
Voici la ligne qui semble créer problème:
CourrierType.MailMerge.OpenDataSource Name:="C:DocFusion - Communiqué.xls"


CourrierType n'a pas été défini tout simplement !!!
C'est un objet document
Geo ne l'a pas défini car nous ne savons pas où vous cherchez ce document !
On a parlé d'un document ouvert ou crée par Excel par exemple
Si la macro est lancée dans Word depuis le document lui-même il suffit d'écrire
Set CourrierType = ActiveDocument
avant d'utiliser le code qui en fait mention....
Les bases, les bases d'abord :-)

Anacoluthe
« C'est encore en méditant l'objet
que le sujet a le plus de chance de s'approfondir. »
- Gaston BACHELARD




Geo
Le #1622696

J'aurais une autre petite question, est-il possible de faire le chemin
inverse, à savoir à partir d'une macro en excel fusionner les données de ce
fichier dans un document word contenant les champs de fusion désirés ? Ce
serait plus facile pour moi ainsi !


Si vous savez le faire dans Word, vous pouvez le faire à partir
d'Excel.
Le terme technique c'est "piloter Word" à partir d'Excel, vous
trouverez des exemples sur ce forum, sur celui d'Excel ou sur
différents sites.
pensez à référencer Word dans le vba Excel.

--
A+

Publicité
Poster une réponse
Anonyme