|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre confirmé
![]() Inscription : juin 2003 Messages : 859 ![]() |
Bonjour à tous,
Je fait de l'automation Word depuis Delphi. Utilisant des macros similaires pour plusieurs modèles Word, j'ai décidé de les stoquer dans un fichier bas commun que j'importe de cette manière: Code :
vDoc.VBProject.VBComponents.Import (MonChemin+'\Module1.bas'); Seulement, j'ai beau le mettre et enregistrer dans le modèle... Il le garde bien, mais le document généré depuis ce modèle ne garde pas les références de son modèle. Si bien que les macros se chargent bien, mais je ne peux pas les utiliser. Je l'ai ajouté au normal.dot, mais ca ne change rien. Comment faire pour contourner le problème (ou au pire, ajouter dynamiquement cette référence depuis le module bas ou Delphi). Merci d'avance.
__________________
David. |
|
|
00
|
|
|
#2 | ||||
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 354 ![]() |
Lorsque tu ajoutes une référence, tu peux dès la déclaration créer et lier ton "objet" (Early binding)
Code :
Mais en VBA, il est possible de faire du (Late Binding) Code :
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
||||
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Inscription : juin 2003 Messages : 859 ![]() |
Bonjour Heureux-oli,
Merci pour ta rapidité, mais je ne vois pas du tout à quel moment l'ajout de référence intervient dans ton exemple. En fait, ce que tu donnes, je le fait dans Delphi, ensuite, je fait un: vDoc.VBProject.VBComponents.Import ('monModule.bas'); (vDoc étant l'instance du document Word désiré) Seulement, je comptait faire l'ajout de référence dans 'monModule.bas'. Mais il ne connait pas l'objet 'Reference'. Ca n'en finit plus.
__________________
David. |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 354 ![]() |
A aucun moment.
Si dans ton code tu utilises mon dernier morceau pour la déclaration de ton code, tu n'as pas besoin de déclarer la référence.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#5 | ||
|
Membre confirmé
![]() Inscription : juin 2003 Messages : 859 ![]() |
Dans mon code VBA ???
Je fait donc un truc comme ça : Code :
Très bien, j'essaye ça dans quelques instants. Merci.
__________________
David. |
||
|
|
00
|
|
|
#6 |
![]() ![]() ![]() |
hum ! hum !
J'ai peur d'avoir compris, et pense que la solution n'est pas (complètement) là. Effectivement, comme l'à dit Heureux-Oli, le Late-Binding te permettra de t'affranchir des références. Mais, si tu as à créer un document word, tu as d'office les références à Word. Partant, le CreateObject ne sert plus à grand-chose pour les bjets de Word. Là où tu en aurais plutôt besoin, ce serait pour tes objets DAO qui ne sont pas référencés, par défaut, dans un projet Word. Une autre possibilité, c'est d'ajouter les références à la volée dans ton projet. Pour cela, regardes donc le tutoriel suivant: http://sinarf.developpez.com/access/autoref/
__________________
1formaxion, une formation de qualité, des formateurs compétents Mes tutoriels et vidéos : Tableaux croisés dynamiques, Access les Bases, et les autres ! |
|
00
|
|
|
#7 | ||
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 354 ![]() |
Dans mon dernier exemple, je met
Tous les objets doivent être déclaré en Objet. Code :
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com