Retourner un objet dans le résultat d'un fonction

brobin Messages postés 12 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 20 septembre 2007 - 5 juin 2006 à 10:47
brobin Messages postés 12 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 20 septembre 2007 - 5 juin 2006 à 12:33
je souhaite retourner une variable de type "Object" dans le résultat d'une fonction.

quand je récupère le résultat, j'ai un message d'erreur me disant "cet objet ne gere pas cette propriété ou cette méthode"

voila mon code:

Function ouverture(fichier)
    Set objServiceManager = CreateObject("com.sun.star.ServiceManager")
    Set objDesktop= objServiceManager.createInstance("com.sun.star.frame.Desktop")
    'ouvrir un document
    Dim args()
    Set objDocument= objDesktop.loadComponentFromURL("file:///" & fichier, "_blank", 0, args)
    ouverture = objDocument
End Function

doc = ouverture("C:/open1.odt")

Il sert à ouvrir un document avec Open Office. et je veux récupérer la variable "objDocument" représentant le document ouvert pour l'utiliser dans une autre fonction sans l'appeler dans la fonction ci-dessus.

comment faire??

7 réponses

cs_vpoyo Messages postés 363 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 20 avril 2010 6
5 juin 2006 à 11:10
si c'est un objet tu dois faire un set pour l'affectation ! donc
Set ouverture = objDocument

petites remarques en passant ca serait bien de déclarer tes variables dans la fonction (dim) et de présicer le type de retour de la fonction Function ouverture(ByVal fichier as string) As ServiceManager
faudrait aussi gérer les erreurs et tester l'existence du fichier en question
0
brobin Messages postés 12 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 20 septembre 2007
5 juin 2006 à 11:35
ok pour la déclaration des variables.
mais je ne peux pas préciser le type de retour de ma fonction. quand je mets Function ouverture(fichier) As Object ou un autre type de retour, j'ai un message d'erreur "instruction attendue", ca fait pareil quand je le fait pour une variable.
0
cs_vpoyo Messages postés 363 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 20 avril 2010 6
5 juin 2006 à 11:38
oups dsl j'avais pas vu que tu étais en vbs effectivement alors tu ne peux pas ^^

mais est-ce que le fait de mettre Set ouverture = objDocument
corrige ton pb ?
0
brobin Messages postés 12 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 20 septembre 2007
5 juin 2006 à 11:41
non ca ne change rien
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_vpoyo Messages postés 363 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 20 avril 2010 6
5 juin 2006 à 11:55
vérifie que ton fichier existe bien, et teste aussi si loadComponentFromURL ne renvoie pas null (ou Nothing)
sinon j'ai cherché un peu sur le net à propos de cette api et il semble que le code soit ca (voir il semble que le code est un simple copier coller ^^)
0
brobin Messages postés 12 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 20 septembre 2007
5 juin 2006 à 12:08
oui j'ai copié ce que j'ai pu trouvé pour ouvrir un document. ok je vai testé loadComponentFromURL.
0
brobin Messages postés 12 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 20 septembre 2007
5 juin 2006 à 12:33
j'ai déclaré mes variables au début du script (ce que je n'avais pas fait avant ... mal!!) et ca marche!! désolé de t'avoir fait réfléchir la dessu pour rien!! merci quand mem d'avoir essayé de m'aider
0
Rejoignez-nous