OVH Cloud OVH Cloud

Migration de publipostage

8 réponses
Avatar
Dominique Clauzel
Bonjour à tous

j'espère que ma question ne sera pas trop compliquée!
j'ai une application sous office 2000 (version 9), avec visual basic sous
access, j'ouvre un fichier word en publipostage lié à un fichier excel.
par exemple: test.doc lié à test.xls
tout est automatique sans in tervention de l'utilisateur

je cherche à l'exécuter avec office XP (version 10)
et là il y a une fenêtre 'pop-up' qui s'affiche avec en titre "Choix du
tableau"
et dans la liste deux noms:
test
test$

qui a une idée pour éviter un tel dialogue complètement inutiel!
D'avance merci pour les suggestions

--
Dominique

8 réponses

Avatar
Anacoluthe
Bonjour !

'Dominique Clauzel' nous a écrit ...
j'espère que ma question ne sera pas trop compliquée!
j'ai une application sous office 2000 (version 9), avec visual basic sous
access, j'ouvre un fichier word en publipostage lié à un fichier excel.
par exemple: test.doc lié à test.xls
tout est automatique sans in tervention de l'utilisateur
je cherche à l'exécuter avec office XP (version 10)
et là il y a une fenêtre 'pop-up' qui s'affiche avec en titre "Choix du
tableau"
et dans la liste deux noms:
test
test$
qui a une idée pour éviter un tel dialogue complètement inutiel!



Cette boîte de dialogue n'est pas inutile pour Word qui cherche
à préciser où trouver vos données dans sa /nouvelle/ façon d'y
accéder. Soit vous corrigez votre code pour être plus explicite,
soit vous revenez à la voie antérieure (probablement DDE).
En espérant vous avoir mis sur la voie...

Anacoluthe
« Le but n'est pas le but, c'est la voie. »
- LAO TSEU

Avatar
Dominique Clauzel
--
Dominique



Bonjour !

'Dominique Clauzel' nous a écrit ...
j'espère que ma question ne sera pas trop compliquée!
j'ai une application sous office 2000 (version 9), avec visual basic sous
access, j'ouvre un fichier word en publipostage lié à un fichier excel.
par exemple: test.doc lié à test.xls
tout est automatique sans in tervention de l'utilisateur
je cherche à l'exécuter avec office XP (version 10)
et là il y a une fenêtre 'pop-up' qui s'affiche avec en titre "Choix du
tableau"
et dans la liste deux noms:
test
test$
qui a une idée pour éviter un tel dialogue complètement inutiel!



Cette boîte de dialogue n'est pas inutile pour Word qui cherche
à préciser où trouver vos données dans sa /nouvelle/ façon d'y
accéder. Soit vous corrigez votre code pour être plus explicite,
soit vous revenez à la voie antérieure (probablement DDE).
En espérant vous avoir mis sur la voie...

Anacoluthe
« Le but n'est pas le but, c'est la voie. »
- LAO TSEU



Bonjour et merci de me mettre sur la voie!
Puis-je en demander plus!
Je veux bien qu'il y est une nouvelle méthode, mais la compatibilité
ascendante est souvent agréable!
Je veux bien faire évoluer mon code, malheureusement je n'ai pas la
documentation correspondante pour la version 10 d'office.
Voici les quelques lignes de l'appel VBA pour ouvrir ce document word:

Set WordObj = New Word.Application
With WordObj
.Visible = True
.WindowState = wdWindowStateMaximize
Set WordDoc = .Documents.Open(Chemin_Admin & Document)
.ActiveDocument.MailMerge.OpenDataSource _
Name:=Chemin_Admin & NomExcel & ".xls", _
LinkToSource:=True, Connection:="Feuille de calcul entière"
.......
sachant que Chemin_Admin contient le chemin windows complet du fichier à
ouvrir,
Document: le nom du fichier Word
NomExcel: le nom du fichier Excel (au cas où car théoriquement c'est déjà
tout prêt)
Enfin je précise ce paramètre Connection, c'est peut être là qu'il faut
préciser un nom de feuille Excel? Je n'ai pas trouvé la doc pour, j'ai trouvé
cette formulation sur le web, et elle fonctionne parfaitement en Access 98 et
2000!

Merci d'avance si vous pouvez éclairer ma lanterne!


Avatar
Anacoluthe
Bonjour !

'Dominique Clauzel' nous a écrit ...
(un post débutant par '-- ' donc non 'quotable' :-( )

Votre chaîne de connexion
Connection:="Feuille de calcul entière"
s'applique à une ancienne connexion en DDE
(Outils / Options / Général / Confirmation des conversions...)
donc
- soit vous ajoutez à votre méthode OpenDataSource le
paramètre SubType:=wdMergeSubTypeWord2000
(dans WD2003, pas certain pour WD2002) pour revenir à la même
voie que dans votre ancien WD2000
- soit vous nommez explicitement la plage des données XL
Connection:="MaPlageDeDatas"

C'est mieux ?

Anacoluthe
« Le but n'est pas le but, c'est la voie. »
- LAO TSEU
Avatar
Dominique Clauzel
--
Dominique



Bonjour !

'Dominique Clauzel' nous a écrit ...
(un post débutant par '-- ' donc non 'quotable' :-( )

Votre chaîne de connexion
Connection:="Feuille de calcul entière"
s'applique à une ancienne connexion en DDE
(Outils / Options / Général / Confirmation des conversions...)
donc
- soit vous ajoutez à votre méthode OpenDataSource le
paramètre SubType:=wdMergeSubTypeWord2000
(dans WD2003, pas certain pour WD2002) pour revenir à la même
voie que dans votre ancien WD2000
- soit vous nommez explicitement la plage des données XL
Connection:="MaPlageDeDatas"

C'est mieux ?

Anacoluthe
« Le but n'est pas le but, c'est la voie. »
- LAO TSEU



Bien sûr que c'est mieux! c'est même génial! Je suis sur la bonne voie car
j'étais vraiment coincé!
Pour être encore plusclair, je dois préciser que cette application est
installée soit sous office 2000, soit sous office xp et j'aimerai que le code
soit unique, quitte à tester la version dans laquelle j'opère, car ceux qui
l'installent sont de simples utilisateurs.
Donc l'option Connection:="MaPlageData" me paraît la plus adhoc(?) à
condition de fonctionner avec Office 2000. Une précision, ce fichier XL est
généré juste avant l'appel avec les valeurs nécessaires, est-ce que
"MapalgeData" correspond à "Feuil1"? ou à "test$" si le fichier s'appelle
test.xls?

Encore bravo, et milles merci

Avatar
Dominique Clauzel
--
Dominique



Bonjour !

'Dominique Clauzel' nous a écrit ...
(un post débutant par '-- ' donc non 'quotable' :-( )

Votre chaîne de connexion
Connection:="Feuille de calcul entière"
s'applique à une ancienne connexion en DDE
(Outils / Options / Général / Confirmation des conversions...)
donc
- soit vous ajoutez à votre méthode OpenDataSource le
paramètre SubType:=wdMergeSubTypeWord2000
(dans WD2003, pas certain pour WD2002) pour revenir à la même
voie que dans votre ancien WD2000
- soit vous nommez explicitement la plage des données XL
Connection:="MaPlageDeDatas"

C'est mieux ?

Anacoluthe
« Le but n'est pas le but, c'est la voie. »
- LAO TSEU

Re Bonjour! et Re merci!


J'ai avancé, du moins un peu, depuis mon message précédent.
Le fichier Excel est généré en VBA et l'instruction à la forme suivante:
DoCmd.TransferSpreadsheet acExport, 8, Req, "NomExcel.xls", True
Req étant une requête SQL
La feuille résultat du fichier XL a pour nom le nom de la requête. En
utilisant ce nom comme paramètre de "Connect" j'ai un appel correct avac
Office 2000!
Je n'ai pas pour l'instant Office XP pour tester comment cela se comporte
dans cette version, mais c'est une sérieuse avancée!

A bientôt j'espère et merci

Avatar
Anacoluthe
Bonjour !

'Dominique Clauzel' nous a écrit ...
(non quotable)

Svp évitez de commencer votre message par '-- ' : c'est le code
Usenet de 'signature' qu'un bon newsreader ne doit pas 'quoter'
(= citer avec des > ) lors d'une réponse. Une bonne réponse
doit quoter tout ou partie du post auquel il répond pour être
facilement lisible par la communauté. C'est trop fastidieux
à faire si vous placez tout votre post comme non quotable !!
Merci de votre compréhension.


Si votre publipostage doit fonctionner sur WD2000 _ET_ WD2002
je pense que vous avez plutôt intérêt à tout harmoniser
en ajoutant SubType:= wdMergeSubTypeWord2000
(j'ai vérifié : c'est valable dans WD2002 comme dans WD2003)
car les chaînes de connexion sont différentes selon la voie
utilisée par défaut.

Anacoluthe
« Le but n'est pas le but, c'est la voie. »
- LAO TSEU
Avatar
Dominique Clauzel
Ce message est une réponse à "Anacoluthe" qui m'a rendu un immense service!
Je viens juste d'avoir un Office XP et j'ai pu tester ses suggestions:
c'est l'option SubType:=wdMergeSubTypeWord2000 qui donne le bon résultat.
Je n'ai eu aucune amélioration en essayant Connection:="MaPlageDeDatas"!
Une dernière remarque: le mot clé SubType n'est pas accepté dans Office
2000! Il faut donc avoir deux versions de mon module uniquement pour ce
morceau de code. Ce n'est pas grand chose en face du service qu'il rend!

Encore mille fois merci
--
Dominique



Bonjour à tous

j'espère que ma question ne sera pas trop compliquée!
j'ai une application sous office 2000 (version 9), avec visual basic sous
access, j'ouvre un fichier word en publipostage lié à un fichier excel.
par exemple: test.doc lié à test.xls
tout est automatique sans in tervention de l'utilisateur

je cherche à l'exécuter avec office XP (version 10)
et là il y a une fenêtre 'pop-up' qui s'affiche avec en titre "Choix du
tableau"
et dans la liste deux noms:
test
test$

qui a une idée pour éviter un tel dialogue complètement inutiel!
D'avance merci pour les suggestions

--
Dominique


Avatar
Anacoluthe
Bonjour !

'Dominique Clauzel' nous a écrit ...
Ce message est une réponse à "Anacoluthe" qui m'a rendu un immense service!
Je viens juste d'avoir un Office XP et j'ai pu tester ses suggestions:
c'est l'option SubType:=wdMergeSubTypeWord2000 qui donne le bon résultat.
Je n'ai eu aucune amélioration en essayant Connection:="MaPlageDeDatas"!
Une dernière remarque: le mot clé SubType n'est pas accepté dans Office
2000! Il faut donc avoir deux versions de mon module uniquement pour ce
morceau de code. Ce n'est pas grand chose en face du service qu'il rend!


Merci de ce retour :-)
Il doit être possible de faire un code commun aux versions.
Parfois WD2000 'saute' sans erreur le subtype qu'il ne comprend pas
ou alors on teste Val(Application.Version) qui donne 9 pour
WD2000, 10 pour WD2002, 11 pour WD2003 ...
Bonne continuation !

Anacoluthe
« Le but n'est pas le but, c'est la voie. »
- LAO TSEU