Bonjour,

J'ai associé une macro X à l'évènement "lors de la création du document".

Dans cette macro j'ai utilisé thisComponent pour accéder au document courant.

Ca a toujours bien marché, jusqu'à ce que j'essaie de créer le document à partir d'une macro Y accessible via une barre d'outils. Dans ce cas, s'il y a déjà un document ouvert, c'est celui-là qui est retourné par thisComponent dans la macro X.

Dans ce cas toujours, si on utilise un bouton dans le nouveau document pour appeler la macro X, c'est toujours le premier document qui est retourné. La situation se rétablit, par exemple, en lançant l'EDI.

J'ai résolu le problème en remplaçant thisComponent par StarDesktop.CurrentComponent.

Mais ce n'est pas encore tout à fait satisfaisant.

Si la macro Y fait un msgBox, on se retrouve avec deux macros actives en même temps: la macro Y qui a ouvert le document et qui attend une action de l'utilisateur, et la macro X qui a été lancée automatiquement et qui, en l'occurrence, affiche une boite de dialogue.

la msgBox est verrouillée, et donc Y stoppée, jusqu'à ce que le macro X soit terminée.

Mais dans ce cas, dans la macro X, starDesktop.CurrentComponent recommence à renvoyer le premier document. Je suppose que ça s'explique du fait que msgBox est lancé depuis la macro Y elle même lancée quand le premier document avait le focus.

Tout celà pour amener une question: comment peut-on faire pour accéder de manière fiable au document courant dans une macro lancée lors de la création de ce document?

La macro est lancée en parallèlle *pendant* l'exécution de StarDesktop.LoadComponentFromURL, et le document retourné n'est accessible depuis basic *qu'après* son exécution.

merci d'avance pour vos suggestions,

A+

ph.

--

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à