Bonjour Jean-Luc,

Thiebaut Jean-Luc a écrit :
pour ma base de données, j'ai une sorte de formulaire principal qui ne comporte que des boutons. La plupart ouvre des formulaires, le dernier "Quitter" devrait fermer tous les formulaires ouverts,
et si possible quitter Ooo.

Il faut utiliser StarDesktop.terminate() pour tenter de quitter OOo. Je te laisse voir les parametres a passer pour ferme vraiment OOo.

j'ai trouvé sur Internet un morceau de code permettant de fermer les fenêtres :

   <code>
   Dim serviceManager As Object, Desktop As Object, i As Byte
   Set serviceManager = CreateObject("com.sun.star.serviceManager")
Set Desktop = serviceManager.createInstance("com.sun.star.frame.Desktop") For i = 1 To Desktop.Frames.getCount 'compte le nombre de fenêtres OOo ouvertes
       Desktop.getFrames.getByIndex(0).Close (False)
   Next i
   </code>

Je vois plusieurs erreurs dans ton code:
1/ com.sun.star.serviceManager n'existe pas dans l'API: ca doit etre "com.sun.star.lang.ServiceManager" 2/ Pour recuperer le desktop, il suffit d'utiliser la variable StarDesktop. 3/ En Basic OOo, sauf indication contraire par une option dont je ne me souviens plus, les indices de tableaux commencent a 0 et non pas 1 4/ Soit tu ecris StarDesktop.Frames soit StarDesktop.getFrames(), mais pas un melange des deux. Si ca se trouve c'est syntaxiquement pas faux, mais c'est plus propre comme code.

<code>
For i = 0 To StarDesktop.Frames.Count
   StarDesktop.getFrames().getFrames().getByIndex(0).Close(False)
Next i
</code>

J'espere que ca t'aide.

A bientot
Cedric

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

Répondre à