VBA Besoin d'aide !

Le
Gen
Bonjour,

Je voulais créer une macro en excel qui me permettrais de fusionner vers un
document word. Voici le code que j'utilise et qui fonctionne en partie.

Sub test2()

Dim AppWord As Object
Dim Chemin, Fichier, Chemin_Fichier, Source As String
Sheets("Feuil1").Select
Source = ActiveWorkbook.Path & "" & ActiveWorkbook.Name


Set AppWord = CreateObject("Word.Application")
Set WdDoc = AppWord.Documents.Open("C:Document.doc")

With WdDoc
.Application.Visible = True
.MailMerge.OpenDataSource Name:=Source, LinkToSource:=True
With .MailMerge
.Destination = wdSendToNewDocument
With .DataSource
.FirstRecord = 1
.LastRecord = 1
End With
.Execute Pause:úlse
End With
.Application.Visible = True

' Ferme le doc ayant servi de modèle sans l'enregistrer
.Close (False)

End With

' Active Word
Application.ActivateMicrosoftApp xlMicrosoftWord

' Libère la mémoire
Set WdDoc = Nothing


End Sub

Je rencontre 1 problème. Le premier est à la ligne :

.MailMerge.OpenDataSource Name:=Source, LinkToSource:=True

Là, je dois aller dans le fichier word et sélectionner la feuille où se
trouve les données, cependant, je voudrais que ça se fasse automatiquement.

Est-ce que quelqu'un peut m'aider avec ce problème ?

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
Anacoluthe
Le #1613358
Bonjour !

'Gen' nous a écrit ...
Je rencontre 1 problème. Le premier est à la ligne :
.MailMerge.OpenDataSource Name:=Source, LinkToSource:=True
Là, je dois aller dans le fichier word et sélectionner la feuille où se
trouve les données, cependant, je voudrais que ça se fasse automatiquement.


Vous ne renseignez qu'une partie des paramètres de la méthode OpenDataSource
Il est donc normal que Word vous demande le reste !
Avec l'enregistreur de macro faites une connexion aux données 'à la main'
et servez-vous du code enregistré pour corriger votre macro. Les
paramètres qui manquent sont ceux de requête SQL

Autre piste éventuelle : enregistrez le document principal Document.doc
avec sa connexion aux données. Son ouverture rétablira la connexion à la
DataSource sans avoir besoin de faire un Mailmerge.OpenDataSource

Il faudra aussi inhiber le message d'alerte de la sécurité SQL si
vous voulez que TOUT soit automatique (c'est dans la faq Word ça).

Anacoluthe
« Le temps est comme un fleuve, il ne remonte pas à sa source. »
- RIVAROL

Gen
Le #1613354
Bonjour !

Vous ne renseignez qu'une partie des paramètres de la méthode OpenDataSource
Il est donc normal que Word vous demande le reste !


Je sais, mais lorsque je les déclare je rencontre d'autres problèmes !

Avec l'enregistreur de macro faites une connexion aux données 'à la main'
et servez-vous du code enregistré pour corriger votre macro. Les
paramètres qui manquent sont ceux de requête SQL


L'enregistreur de macro n'enregistre pas lorsque j'utilise le publipostage
et je ne sais pas pourquoi ?

Autre piste éventuelle : enregistrez le document principal Document.doc
avec sa connexion aux données. Son ouverture rétablira la connexion à la
DataSource sans avoir besoin de faire un Mailmerge.OpenDataSource


Cette option n'est malheureusement pas envisageable pour ce que j'ai besoin
de faire.

Avez-vous une solution qui puisse m'aider ?

Merci !



Bonjour !

'Gen' nous a écrit ...
Je rencontre 1 problème. Le premier est à la ligne :
.MailMerge.OpenDataSource Name:=Source, LinkToSource:=True
Là, je dois aller dans le fichier word et sélectionner la feuille où se
trouve les données, cependant, je voudrais que ça se fasse automatiquement.


Vous ne renseignez qu'une partie des paramètres de la méthode OpenDataSource
Il est donc normal que Word vous demande le reste !
Avec l'enregistreur de macro faites une connexion aux données 'à la main'
et servez-vous du code enregistré pour corriger votre macro. Les
paramètres qui manquent sont ceux de requête SQL

Autre piste éventuelle : enregistrez le document principal Document.doc
avec sa connexion aux données. Son ouverture rétablira la connexion à la
DataSource sans avoir besoin de faire un Mailmerge.OpenDataSource

Il faudra aussi inhiber le message d'alerte de la sécurité SQL si
vous voulez que TOUT soit automatique (c'est dans la faq Word ça).

Anacoluthe
« Le temps est comme un fleuve, il ne remonte pas à sa source. »
- RIVAROL




Geo
Le #1613353

Bonjour,

Je voulais créer une macro en excel qui me permettrais de fusionner vers un
document word. Voici le code que j'utilise et qui fonctionne en partie.


[...]

Là, je dois aller dans le fichier word et sélectionner la feuille où se
trouve les données, cependant, je voudrais que ça se fasse automatiquement.


Mettez vos données sous forme de tableau tout au début de votre
document word.
Si ce n'est pas possible, créez un nouveau document et recopiez-y vos
données.

--
A+

Anacoluthe
Le #1613160
Bonjour !

'Gen' nous a écrit ...
L'enregistreur de macro n'enregistre pas lorsque j'utilise le publipostage
et je ne sais pas pourquoi ?


??? Dans un document principal l'enregistreur de macro enregistre
correctement une opération OpenDataSource. Très ancienne version Word ??
Admettons que vous ne pouviez l'enregistrer, rien ne vous empêche d'aller
lire la QueryString de la DataSource une fois qu'elle est connectée.
Et sinon voyez la syntaxe de OpenDataSource et complétez votre code
avec les bons paramètres pour votre source de données, le protocole
d'accès et la requête qui va avec...

Avez-vous une solution qui puisse m'aider ?


Ben faudrait d'abord savoir où est le problème :-p
En principe il n'y en a plus si vous connectez complètement vos données...

Anacoluthe
« Le temps est comme un fleuve, il ne remonte pas à sa source. »
- RIVAROL

Publicité
Poster une réponse
Anonyme