OVH Cloud OVH Cloud

Pb passage variable Object en argument de fonction...

2 réponses
Avatar
Alex
Bonjour,

Je développe actuellement une application Access qui génère des documents
Word via Automation.
Comme le pied de page de ces documents dépend des données saisies dans
l'application, et est le
même quel que soit le type de document (il en existe une dizaine environ),
j'ai crée une fonction
"GenererPiedDePage" qui serait appelée depuis les fonctions de génération de
documents (une
fonction par type de document).

Ma fonction donne ça :
Sub GenererPiedDePage(ByVal appWord as Object)
Dim [...]

MsgBox "test"
[...]
End Sub

Dans mes fonctions de gén. de doc, je crée mon instance de Word en utilisant
une variable de type
Object, pour avoir le "late binding" qui me permet de ne pas avoir à mettre
la référence à Word dans
mon projet, et donc de le faire marcher avec les différentes versions de
Word utilisées par mes clients.

Donc prenons l'exemple de la commande, la fonction ressemble à ça :
Sub GenererCommande(CommandeID as Long)
Dim appWord as Object
[...]
Set appWord = CreateObject("Word.Application")
[...] <-- Création et remplissage du document, tout va bien
GenererPiedDePage(appWord) <---- Proutch je ramasse une erreur 424 "Objet
requis" avant même de voir le MsgBox "test"

J'ai essayé d'enlever le ByVal de mon prototype pour voir, même erreur.
J'ai essayé dans l'appel de remplacer "appWord" par un
GetObject("Word.Application") et là je ramasse une erreur de syntaxe
Automation...
J'ai essayé un appel GenererPiedDePage(CreateObject("Word.Application")) et
là ça passe...

Bref il doit y avoir moyen de passer mon objet appWord, ça doit être tout
bête, mais pour l'instant je n'ai pas eu l'idée qui marche,
et Google ne m'a pour l'instant pas beaucoup avancé...Bref je m'en remets à
votre docte savoir :)

2 réponses

Avatar
Nicolas Mathieu
GenererPiedDePage appWord
(sans les pararenthèses)




"Alex" a écrit dans le message de
news:%
Bonjour,

Je développe actuellement une application Access qui génère des documents
Word via Automation.
Comme le pied de page de ces documents dépend des données saisies dans
l'application, et est le
même quel que soit le type de document (il en existe une dizaine environ),
j'ai crée une fonction
"GenererPiedDePage" qui serait appelée depuis les fonctions de génération


de
documents (une
fonction par type de document).

Ma fonction donne ça :
Sub GenererPiedDePage(ByVal appWord as Object)
Dim [...]

MsgBox "test"
[...]
End Sub

Dans mes fonctions de gén. de doc, je crée mon instance de Word en


utilisant
une variable de type
Object, pour avoir le "late binding" qui me permet de ne pas avoir à


mettre
la référence à Word dans
mon projet, et donc de le faire marcher avec les différentes versions de
Word utilisées par mes clients.

Donc prenons l'exemple de la commande, la fonction ressemble à ça :
Sub GenererCommande(CommandeID as Long)
Dim appWord as Object
[...]
Set appWord = CreateObject("Word.Application")
[...] <-- Création et remplissage du document, tout va bien
GenererPiedDePage(appWord) <---- Proutch je ramasse une erreur 424 "Objet
requis" avant même de voir le MsgBox "test"

J'ai essayé d'enlever le ByVal de mon prototype pour voir, même erreur.
J'ai essayé dans l'appel de remplacer "appWord" par un
GetObject("Word.Application") et là je ramasse une erreur de syntaxe
Automation...
J'ai essayé un appel GenererPiedDePage(CreateObject("Word.Application"))


et
là ça passe...

Bref il doit y avoir moyen de passer mon objet appWord, ça doit être tout
bête, mais pour l'instant je n'ai pas eu l'idée qui marche,
et Google ne m'a pour l'instant pas beaucoup avancé...Bref je m'en remets


à
votre docte savoir :)





Avatar
Alex
Argh effectivement, merci beaucoup !


"Nicolas Mathieu" <nicolas.mathieu(AROBASE)tiscali.fr> a écrit dans le
message de news:
GenererPiedDePage appWord
(sans les pararenthèses)