Bonjour,
Depuis Excel, j'ouvre un classeur word qui effectue un publipostage avec les
données de mon classeur Excel.
Le problème : quand Word s'ouvre, il m'affiche une boîte de dialogue nommée
"Selectionner Table" qui me demande de sélectionner la source de données. Je
voudrais ne pas voir cette boîte pour ne pas perturber les utilisateurs.
J'ai beau lui passer la zone nommée d'Excel dans les paramètres Connection
ou SQLStatement, rien n'y fait, la boîte s'affiche toujours.
Je suis sur Word 2002.
With Word_Application
...
With .ActiveDocument.MailMerge
.OpenDataSource _
Name:=ThisWorkbook.FullName, _
LinkToSource:=True, _
Format:=wdOpenFormatAuto, _
Connection:="Base", _
Revert:=False, _
SQLStatement:="SELECT * FROM `Base$`"
...
end with
end with
Est-ce que quelqu'un saurait comment faire ?
Merci
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Anacoluthe
Bonjour !
'snack' nous a écrit ...
Bonjour, Depuis Excel, j'ouvre un classeur word qui effectue un publipostage avec les données de mon classeur Excel. Le problème : quand Word s'ouvre, il m'affiche une boîte de dialogue nommée "Selectionner Table" qui me demande de sélectionner la source de données. Je voudrais ne pas voir cette boîte pour ne pas perturber les utilisateurs. J'ai beau lui passer la zone nommée d'Excel dans les paramètres Connection ou SQLStatement, rien n'y fait, la boîte s'affiche toujours. Je suis sur Word 2002.
With Word_Application ... With .ActiveDocument.MailMerge .OpenDataSource _ Name:=ThisWorkbook.FullName, _ LinkToSource:=True, _ Format:=wdOpenFormatAuto, _ Connection:="Base", _ Revert:úlse, _ SQLStatement:="SELECT * FROM `Base$`" ... end with end with
Est-ce que quelqu'un saurait comment faire ?
Ce code est-il récupéré d'une ancienne version ? Vous semblez en effet vouloir vous connecter à vos données en DDE mais DDE n'est plus le protocole par défaut depuis WD2002.
Si vos données sont dans la plage nommée Base, le plus simple est de vous connecter en OLEDB :
With .ActiveDocument.MailMerge .OpenDataSource _ Name:=ThisWorkbook.FullName, _ SQLStatement:="SELECT * FROM [Base]" End With
En DDE ça donne :
With .ActiveDocument.MailMerge .OpenDataSource _ Name:=ThisWorkbook.FullName, _ Connection:="Base", SQLStatement:="" , _ SubType:=wdMergeSubTypeWord2000 End With
En DDE Base doit être nommée sur votre 1ère feuille sinon VBA va encore vous demander de choisir une table (de la 1ère feuille). En OLEDB Base peut être sur une feuille quelconque du classeur XL.
À vous de choisir la bonne voie. C'est mieux ?
Anacoluthe « Le but n'est pas le but, c'est la voie. » - LAO TSEU
Bonjour !
'snack' nous a écrit ...
Bonjour,
Depuis Excel, j'ouvre un classeur word qui effectue un publipostage avec les
données de mon classeur Excel.
Le problème : quand Word s'ouvre, il m'affiche une boîte de dialogue nommée
"Selectionner Table" qui me demande de sélectionner la source de données. Je
voudrais ne pas voir cette boîte pour ne pas perturber les utilisateurs.
J'ai beau lui passer la zone nommée d'Excel dans les paramètres Connection
ou SQLStatement, rien n'y fait, la boîte s'affiche toujours.
Je suis sur Word 2002.
With Word_Application
...
With .ActiveDocument.MailMerge
.OpenDataSource _
Name:=ThisWorkbook.FullName, _
LinkToSource:=True, _
Format:=wdOpenFormatAuto, _
Connection:="Base", _
Revert:úlse, _
SQLStatement:="SELECT * FROM `Base$`"
...
end with
end with
Est-ce que quelqu'un saurait comment faire ?
Ce code est-il récupéré d'une ancienne version ?
Vous semblez en effet vouloir vous connecter à vos données en DDE
mais DDE n'est plus le protocole par défaut depuis WD2002.
Si vos données sont dans la plage nommée Base, le plus simple
est de vous connecter en OLEDB :
With .ActiveDocument.MailMerge
.OpenDataSource _
Name:=ThisWorkbook.FullName, _
SQLStatement:="SELECT * FROM [Base]"
End With
En DDE ça donne :
With .ActiveDocument.MailMerge
.OpenDataSource _
Name:=ThisWorkbook.FullName, _
Connection:="Base", SQLStatement:="" , _
SubType:=wdMergeSubTypeWord2000
End With
En DDE Base doit être nommée sur votre 1ère feuille sinon VBA
va encore vous demander de choisir une table (de la 1ère feuille).
En OLEDB Base peut être sur une feuille quelconque du classeur XL.
À vous de choisir la bonne voie. C'est mieux ?
Anacoluthe
« Le but n'est pas le but, c'est la voie. »
- LAO TSEU
Bonjour, Depuis Excel, j'ouvre un classeur word qui effectue un publipostage avec les données de mon classeur Excel. Le problème : quand Word s'ouvre, il m'affiche une boîte de dialogue nommée "Selectionner Table" qui me demande de sélectionner la source de données. Je voudrais ne pas voir cette boîte pour ne pas perturber les utilisateurs. J'ai beau lui passer la zone nommée d'Excel dans les paramètres Connection ou SQLStatement, rien n'y fait, la boîte s'affiche toujours. Je suis sur Word 2002.
With Word_Application ... With .ActiveDocument.MailMerge .OpenDataSource _ Name:=ThisWorkbook.FullName, _ LinkToSource:=True, _ Format:=wdOpenFormatAuto, _ Connection:="Base", _ Revert:úlse, _ SQLStatement:="SELECT * FROM `Base$`" ... end with end with
Est-ce que quelqu'un saurait comment faire ?
Ce code est-il récupéré d'une ancienne version ? Vous semblez en effet vouloir vous connecter à vos données en DDE mais DDE n'est plus le protocole par défaut depuis WD2002.
Si vos données sont dans la plage nommée Base, le plus simple est de vous connecter en OLEDB :
With .ActiveDocument.MailMerge .OpenDataSource _ Name:=ThisWorkbook.FullName, _ SQLStatement:="SELECT * FROM [Base]" End With
En DDE ça donne :
With .ActiveDocument.MailMerge .OpenDataSource _ Name:=ThisWorkbook.FullName, _ Connection:="Base", SQLStatement:="" , _ SubType:=wdMergeSubTypeWord2000 End With
En DDE Base doit être nommée sur votre 1ère feuille sinon VBA va encore vous demander de choisir une table (de la 1ère feuille). En OLEDB Base peut être sur une feuille quelconque du classeur XL.
À vous de choisir la bonne voie. C'est mieux ?
Anacoluthe « Le but n'est pas le but, c'est la voie. » - LAO TSEU
snack
Excellent, excellent !!! Ce code était effectivement hérité d'Office 97, j'ai d'ailleurs mis un petit bout de temps à comprendre pourquoi ça ne fonctionnait plus. D'après ce que j'ai compris en lisant les archives (d'un de vos messages je crois !), c'est dû à la mise en place de sécurités par rapport aux instructions SQL (désactivables mais j'ai pas spécialement envie de faire des trous de sécurité). J'ai donc utilisé la routine :
With .ActiveDocument.MailMerge .OpenDataSource _ Name:=ThisWorkbook.FullName, _ SQLStatement:="SELECT * FROM [Base]" End With
Un grand merci à vous et bonne continuation dans tout ce que vous faites !
"Anacoluthe" a écrit dans le message de news:
Bonjour !
'snack' nous a écrit ...
Bonjour, Depuis Excel, j'ouvre un classeur word qui effectue un publipostage avec les données de mon classeur Excel. Le problème : quand Word s'ouvre, il m'affiche une boîte de dialogue nommée "Selectionner Table" qui me demande de sélectionner la source de données. Je voudrais ne pas voir cette boîte pour ne pas perturber les utilisateurs. J'ai beau lui passer la zone nommée d'Excel dans les paramètres Connection ou SQLStatement, rien n'y fait, la boîte s'affiche toujours. Je suis sur Word 2002.
With Word_Application ... With .ActiveDocument.MailMerge .OpenDataSource _ Name:=ThisWorkbook.FullName, _ LinkToSource:=True, _ Format:=wdOpenFormatAuto, _ Connection:="Base", _ Revert:úlse, _ SQLStatement:="SELECT * FROM `Base$`" ... end with end with
Est-ce que quelqu'un saurait comment faire ?
Ce code est-il récupéré d'une ancienne version ? Vous semblez en effet vouloir vous connecter à vos données en DDE mais DDE n'est plus le protocole par défaut depuis WD2002.
Si vos données sont dans la plage nommée Base, le plus simple est de vous connecter en OLEDB :
With .ActiveDocument.MailMerge .OpenDataSource _ Name:=ThisWorkbook.FullName, _ SQLStatement:="SELECT * FROM [Base]" End With
En DDE ça donne :
With .ActiveDocument.MailMerge .OpenDataSource _ Name:=ThisWorkbook.FullName, _ Connection:="Base", SQLStatement:="" , _ SubType:=wdMergeSubTypeWord2000 End With
En DDE Base doit être nommée sur votre 1ère feuille sinon VBA va encore vous demander de choisir une table (de la 1ère feuille). En OLEDB Base peut être sur une feuille quelconque du classeur XL.
À vous de choisir la bonne voie. C'est mieux ?
Anacoluthe « Le but n'est pas le but, c'est la voie. » - LAO TSEU
Excellent, excellent !!!
Ce code était effectivement hérité d'Office 97, j'ai d'ailleurs mis un petit
bout de temps à comprendre pourquoi ça ne fonctionnait plus. D'après ce que
j'ai compris en lisant les archives (d'un de vos messages je crois !), c'est
dû à la mise en place de sécurités par rapport aux instructions SQL
(désactivables mais j'ai pas spécialement envie de faire des trous de
sécurité).
J'ai donc utilisé la routine :
With .ActiveDocument.MailMerge
.OpenDataSource _
Name:=ThisWorkbook.FullName, _
SQLStatement:="SELECT * FROM [Base]"
End With
Un grand merci à vous et bonne continuation dans tout ce que vous faites !
"Anacoluthe" <nopub_anacoluthe@Ouanadoo.fr> a écrit dans le message de news:
uOPqximXGHA.2376@TK2MSFTNGP03.phx.gbl...
Bonjour !
'snack' nous a écrit ...
Bonjour,
Depuis Excel, j'ouvre un classeur word qui effectue un publipostage avec
les données de mon classeur Excel.
Le problème : quand Word s'ouvre, il m'affiche une boîte de dialogue
nommée "Selectionner Table" qui me demande de sélectionner la source de
données. Je voudrais ne pas voir cette boîte pour ne pas perturber les
utilisateurs.
J'ai beau lui passer la zone nommée d'Excel dans les paramètres
Connection ou SQLStatement, rien n'y fait, la boîte s'affiche toujours.
Je suis sur Word 2002.
With Word_Application
...
With .ActiveDocument.MailMerge
.OpenDataSource _
Name:=ThisWorkbook.FullName, _
LinkToSource:=True, _
Format:=wdOpenFormatAuto, _
Connection:="Base", _
Revert:úlse, _
SQLStatement:="SELECT * FROM `Base$`"
...
end with
end with
Est-ce que quelqu'un saurait comment faire ?
Ce code est-il récupéré d'une ancienne version ?
Vous semblez en effet vouloir vous connecter à vos données en DDE
mais DDE n'est plus le protocole par défaut depuis WD2002.
Si vos données sont dans la plage nommée Base, le plus simple
est de vous connecter en OLEDB :
With .ActiveDocument.MailMerge
.OpenDataSource _
Name:=ThisWorkbook.FullName, _
SQLStatement:="SELECT * FROM [Base]"
End With
En DDE ça donne :
With .ActiveDocument.MailMerge
.OpenDataSource _
Name:=ThisWorkbook.FullName, _
Connection:="Base", SQLStatement:="" , _
SubType:=wdMergeSubTypeWord2000
End With
En DDE Base doit être nommée sur votre 1ère feuille sinon VBA
va encore vous demander de choisir une table (de la 1ère feuille).
En OLEDB Base peut être sur une feuille quelconque du classeur XL.
À vous de choisir la bonne voie. C'est mieux ?
Anacoluthe
« Le but n'est pas le but, c'est la voie. »
- LAO TSEU
Excellent, excellent !!! Ce code était effectivement hérité d'Office 97, j'ai d'ailleurs mis un petit bout de temps à comprendre pourquoi ça ne fonctionnait plus. D'après ce que j'ai compris en lisant les archives (d'un de vos messages je crois !), c'est dû à la mise en place de sécurités par rapport aux instructions SQL (désactivables mais j'ai pas spécialement envie de faire des trous de sécurité). J'ai donc utilisé la routine :
With .ActiveDocument.MailMerge .OpenDataSource _ Name:=ThisWorkbook.FullName, _ SQLStatement:="SELECT * FROM [Base]" End With
Un grand merci à vous et bonne continuation dans tout ce que vous faites !
"Anacoluthe" a écrit dans le message de news:
Bonjour !
'snack' nous a écrit ...
Bonjour, Depuis Excel, j'ouvre un classeur word qui effectue un publipostage avec les données de mon classeur Excel. Le problème : quand Word s'ouvre, il m'affiche une boîte de dialogue nommée "Selectionner Table" qui me demande de sélectionner la source de données. Je voudrais ne pas voir cette boîte pour ne pas perturber les utilisateurs. J'ai beau lui passer la zone nommée d'Excel dans les paramètres Connection ou SQLStatement, rien n'y fait, la boîte s'affiche toujours. Je suis sur Word 2002.
With Word_Application ... With .ActiveDocument.MailMerge .OpenDataSource _ Name:=ThisWorkbook.FullName, _ LinkToSource:=True, _ Format:=wdOpenFormatAuto, _ Connection:="Base", _ Revert:úlse, _ SQLStatement:="SELECT * FROM `Base$`" ... end with end with
Est-ce que quelqu'un saurait comment faire ?
Ce code est-il récupéré d'une ancienne version ? Vous semblez en effet vouloir vous connecter à vos données en DDE mais DDE n'est plus le protocole par défaut depuis WD2002.
Si vos données sont dans la plage nommée Base, le plus simple est de vous connecter en OLEDB :
With .ActiveDocument.MailMerge .OpenDataSource _ Name:=ThisWorkbook.FullName, _ SQLStatement:="SELECT * FROM [Base]" End With
En DDE ça donne :
With .ActiveDocument.MailMerge .OpenDataSource _ Name:=ThisWorkbook.FullName, _ Connection:="Base", SQLStatement:="" , _ SubType:=wdMergeSubTypeWord2000 End With
En DDE Base doit être nommée sur votre 1ère feuille sinon VBA va encore vous demander de choisir une table (de la 1ère feuille). En OLEDB Base peut être sur une feuille quelconque du classeur XL.
À vous de choisir la bonne voie. C'est mieux ?
Anacoluthe « Le but n'est pas le but, c'est la voie. » - LAO TSEU