[WD-2003] Macro de publipostage + filtre / WHERE

Fermé
abyssin87 Messages postés 37 Date d'inscription mercredi 1 août 2007 Statut Membre Dernière intervention 1 mars 2016 - Modifié par abyssin87 le 21/05/2014 à 12:02
abyssin87 Messages postés 37 Date d'inscription mercredi 1 août 2007 Statut Membre Dernière intervention 1 mars 2016 - 21 mai 2014 à 16:54
Bonjour,

J'ai des difficultés avec une macro VBA qui commande un publipostage.
Celle-ci lit un fichier xls et fait un publipostage dans Word.
Cela fonctionne bien sauf lorsque j'essaie de filtrer les données, pour ne prendre que les lignes ayant pour valeur de première colonne la chaîne "cfanrpwepvt" par exemple
Je pensais manipuler les données affichées dans le xls avec un filtre

Wb.Sheets(1).Range("A1").AutoFilter Field:=1, Criteria1:="cfanrpwepvt"

mais le publipostage prend quand même toutes les lignes.
J'ai alors essayer de supprimer toutes les lignes sauf les bonnes dans Sheets(1), mais j'ai le même résultat, même en faisant un .save juste avant
J'ai aussi pensé à modifier le SQLStatement du DataSource :

ActiveDocument.MailMerge.OpenDataSource Name:= _
FichierSource, _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=" + FichierSource + ";Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Dat" _
, SQLStatement:="SELECT * FROM 'Feuil1$'", SQLStatement1:="", SubType:= _
wdMergeSubTypeAccess

en mettant un

SQLStatement:="SELECT * FROM 'Feuil1$' WHERE 'CodMacro'='cfarp'"

en manipulant un peu les quotes et le $ pour tenter d'avoir un truc correct mais à chaque fois j'ai une fenêtre qui s'ouvre pour sélectionner une table (syntaxe incorrecte donc?)

Quelqu'un saurait m'éclairer sur ceci?
Je vous remercie par avance pour vos réponses !
A voir également:

1 réponse

abyssin87 Messages postés 37 Date d'inscription mercredi 1 août 2007 Statut Membre Dernière intervention 1 mars 2016 1
21 mai 2014 à 16:54
Ca marche avec
SQLStatement:="SELECT * FROM [Feuil1$] WHERE [CodMacro]= 'cfarp'"

ou avec une variable
SQLStatement:="SELECT * FROM [Feuil1$] WHERE [CodMacro]= '" + strCodMacro + "'"
0