En fait la variable sForm est initialisée dans chaque formulaire avec le nom du formulaire à fermer. Dans "Contacts" il est initialisé à "Contacts" dans "Appels" à "Appels" dans "Adresses" à "Adresses" etc
La ligne d'appel de la macro "Fermeture" donne donc après remplacement oDispatch.executeDispatch( StarDesktop, "macro://Contacts/Standard.Lanceur.Fermeture(" & sForm & ")", "", 0, Array() ) ^ ^ ^ ^ I I I I formulaire Biblio Module Macro où se trouve "Fermeture" oDispatch.executeDispatch( StarDesktop, "macro://Contacts/Standard.Lanceur.Fermeture(Appels)", "", 0, Array() ) Dans la mesure où tu fermes le formulaire qui pour mon cas est le formulaire pivôt, "sForm" serait alors initialisée à "Contacts" Cependant dans la mesure où tu n'as qu'un formulaire à fermer, s'il s'appelait "Travail" pourquoi n'utilises-tu pas directement la macro "Fermeture" en la modifiant légèrement ainsi : Sub Fermeture Dim oDoc As Object, oFormClo As Object, oDocForms As Object, sForm As String oDoc = StarDeskTop.getCurrentComponent oDocForms = oDoc.getFormDocuments() sForm = "Travail" oFormClo = oDocForms.getByName(sForm) oFormClo.dispose End Sub Un détail qui a son importance : J'utilise "StarDesktop" et pas "ThisComponent". Dans ce cas, tu ne peux pas tester pas à pas dans l'éditeur de macros. Il n'y a pas d'autre solution pour tester que de tenter la fermeture du formulaire en lançant la macro "Fermeture". Cordialement Jean-Marc [EMAIL PROTECTED] a écrit : > [EMAIL PROTECTED] a écrit : > >> Bonjour à tous, >> >> Je suis à la recherche d'une macro pour fermer un formulaire dans Base. >> J'ai réussit avec l'enregistreur de macro à recréer les événements >> standards (enregistrement suivant, précédent etc...) mais impossible >> d'en créer une pour fermer le formulaire. >> Je travaille sur un formulaire en plein écran et de ce fait je n'ai >> plus les petits symboles en haut à droites (notament pour fermer le >> document) >> >> Merci d'vance pour votre aide et bonne journée à tous >> >> >>> J'ai une collection de formulaires. Un formulaire est le formulaire >>> pivôt qui >>> gère ouverture et fermeture de l'ensemble de la collection. >>> >>> Ce formulaire s'appelle "Contacts", et contient la macro "Fermeture" >>> dans sa bibli "Lanceur": >> > > >> '--Fermeture------------------------ > > >> Sub Fermeture( sForm As String) > >>> Dim oDoc As Object, oFormClo As Object, oDocForms As Object, Mess As >>> String >> > >>> oDoc = StarDeskTop.getCurrentComponent >> > >>> oDocForms = oDoc.getFormDocuments() >>> oFormClo = oDocForms.getByName(sForm) >> > >>> oFormClo.dispose >> > >>> End Sub >> > >>> Cette macro est appelée par chaque formulaire, y compris lui-même grâce >>> à la macro >>> suivante associée à un bouton de commande : >> > >>> '--Appel_Fermeture----------------------- >> > >>> Sub Appel_Fermeture(oEvent As Object) >>> Dim oDispatch As Object, sForm As string >>> sForm = "Appels" >>> oDispatch = createUnoService( "com.sun.star.frame.DispatchHelper" ) >>> oDispatch.executeDispatch( StarDesktop, >>> "macro://Contacts/Standard.Lanceur.Fermeture(" & sForm & ")", "", 0, >>> Array() ) >>> End Sub >> > >>> Le recours au dispatcher est du au fait que je voulais n'avoir la macro >>> "Fermeture" qu'en un seul exemplaire dans un formulaire >>> central. >> > >>> Espérant que cela aide >>> J-M Delmas >> > > Merci de ton aide mais j'ai quelques soucis à mettre tout cela en > place pourtant j'ai récrée un formulaire avec le même nom, une blibli > également et recopié l'ensemble de ton code mais rien ne marche. Même > pas de message d'erreur. > > Je pense que je doit mal paramétrer la seconde macro : > sForm = "Appels" <=== dois-je laisser le même nom ? > > Pour cette ligne, j'ai tout mis pareil mais mais il dois y avoir un > soucis quelque part ?? > oDispatch.executeDispatch( StarDesktop, > "macro://Contacts/Standard.Lanceur.Fermeture(" & sForm & ")", "", 0, > Array() ) > > Merci encore de ton aide > Arnaud POUSSIER > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]