VBA - Publipostage avec source XLS

Manolitoos Messages postés 14 Date d'inscription samedi 10 septembre 2005 Statut Membre Dernière intervention 4 avril 2008 - 13 sept. 2005 à 09:15
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 15 sept. 2005 à 18:51
Bonjour,

Je suis confronté à un problème en VBA : en vue d'automatiser un publipostage avec une source EXCEL, je souhaiterais pouvoir choisir la feuille de calcul en récupérant son nom dans une inputbox et placée la variable au bon endroit.
Le problème est que lorsque que j'enregistre la manipulation j'obtiens le code suivant :

Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 12/09/2005
'
ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
ActiveDocument.MailMerge.OpenDataSource Name:="C:\temp\t.xls", _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:="", SQLStatement:="", SQLStatement1 _
:=""
ActiveDocument.MailMerge.EditMainDocument
End Sub

mais je ne sais pas du tout ou placée cette variable, quelqu'un aurait-il une idée ?

Merci d'avance,

Manolitoos

4 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
13 sept. 2005 à 16:57
Bonjour,

Essaies ceci

Sub macro2()
dim classeur as string, fichier as string

classeur= inputbox("nom du classeur")
if classeur="" then: exit sub

fichier=activedocument.path & "" & classeur

ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
ActiveDocument.MailMerge.OpenDataSource Name:= fichier, _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:="", SQLStatement:="", SQLStatement1 _
:=""
ActiveDocument.MailMerge.EditMainDocument
End Sub

écrit en direct et non testé

A+
Michel
0
Manolitoos Messages postés 14 Date d'inscription samedi 10 septembre 2005 Statut Membre Dernière intervention 4 avril 2008
14 sept. 2005 à 09:14
Salut,

Je ne comprends pas ton code... tout ce que je voudrais savoir c'est est-il possible de spécifier un onglet du fichier excel et comment ?

Merci pour ta réponse

Manolitoos
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
15 sept. 2005 à 07:51
Bonjour,

Excuses moi, j'ai confondu classeur et onglet. Je regarderai tout çà dès que j'aurai 2 minutes (plutôt samedi vu le boulot)

Michel
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
15 sept. 2005 à 18:51
bonjour,

Pour pouvoir accèder à tes données dans Excel, il te faut nommer le tableau de tes données (avec les étiquettes de champs); tu peux avoir le m^me nom pour ton tableau et ton onglet par exemple toto.

Une fois nommé, utilise l'enregistreur de macro avec MS query et remplace le nom toto inscrit par le nom de la variable (remplace "classseur" par "onglet" par exemple)

Ca devrait marcher

Michel
0
Rejoignez-nous