ouvrir un formulaire au lancement libre office

Bonjour
Est-il possible d’ouvrir un formulaire directement au lancement de Libre Office ?
Merci

Bonjour @jjber

En préambule je me dois de dire qu’en tant qu’utilisateur de LibreOffice je détesterais cela :slight_smile:

(mon usage de LibreOffice ne se limitant pas à l’usage d’une base).

Cela dit, ce n’est pas précisé mais je suppose qu’il s’agit d’un formulaire contenu dans une base de données.

  • Si cette hypothèse est bonne et
  • Si la base est référencée (OutilsOptionsBaseBase de données) tu peux associer une macro à l’ouverture de l’application par OutilsPersonnaliser▸onglet ÉvénementsDémarrer l'application. Il faut naturellement que la macro figure dans la librairie Standard de Mes macros (ou dans une autre librairie chargée).

Exemple de macro ouvrant un formulaire nommé “biblio” dans la source de données Bibliography (nota: il n’y a aucun formulaire dans cette base de données par défaut ; à créer donc pour test).

option explicit

global oConnexion as object

sub PysOuvrirForm()
dim oForms as object, oForm as object
dim ptFichier(2) as new com.sun.star.beans.PropertyValue

oConnexion = ConnecterSource

oForms = oConnexion.Parent.DataBaseDocument.FormDocuments

ptFichier(0).Name = "ActiveConnection"
ptFichier(0).Value = oConnexion
ptFichier(1).Name = "OpenMode"
ptFichier(1).Value = "open"

oForm = oForms.loadComponentFromURL("biblio", "", 0, ptFichier())
oForm.CurrentController.Frame.ContainerWindow.toFront

end sub

Function ConnecterSource()
Dim sNomSource As String, sLogin As String, sPassword As String
Dim oSource As Object, oDbContext As Object

sNomSource = "Bibliography"
oDbContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
oSource = oDbContext.getByName(sNomSource)

sLogin = ""
sPassword = ""
oConnexion = oSource.getConnection(sLogin, sPassword)

if IsNull(oConnexion) then
  MsgBox("Connexion impossible", 16)
  Stop
end if
ConnecterSource = oConnexion
End Function

Cordialement

Bonjour PYS
je ne suis pas un spécialiste des macros; aussi j’ai récupéré la tienne pour l’incorporer dans ma Base de Données (base de données AGC22.odb).
J’ai changé le nom du formulaire “Menu” à la place de “biblio” et ton sNomSource “Bibliographie” par le Nom de ma base "base de données AGC22’…
Il n’accepte pas le nom de ma base = Erreur
Ci dessous ma macro “Menu”

global oConnexion as object

sub PysOuvrirForm()
dim oForms as object, oForm as object
dim ptFichier(2) as new com.sun.star.beans.PropertyValue

oConnexion = ConnecterSource

oForms = oConnexion.Parent.DataBaseDocument.FormDocuments

ptFichier(0).Name = “ActiveConnection”
ptFichier(0).Value = oConnexion
ptFichier(1).Name = “OpenMode”
ptFichier(1).Value = “open”

oForm = oForms.loadComponentFromURL(“Menu”, “”, 0, ptFichier())
oForm.CurrentController.Frame.ContainerWindow.toFront

end sub
Function ConnecterSource()
Dim sNomSource As String, sLogin As String, sPassword As String
Dim oSource As Object, oDbContext As Object

sNomSource = “base de données AGC22”
oDbContext = CreateUnoService(“com.sun.star.sdb.DatabaseContext”)
oSource = oDbContext.getByName(sNomSource)

sLogin = “”
sPassword = “”
oConnexion = oSource.getConnection(sLogin, sPassword)

if IsNull(oConnexion) then
MsgBox(“Connexion impossible”, 16)
Stop
end if
ConnecterSource = oConnexion
End Function

Par avance je te remercie pour ta sollicitude et ton aide
Cordialement
DUME06

Bonjour Pierre-Yves
Un grand merci pour cette macro … qui marche à la perfection.
Mon appli est utilisée par des utilisateurs lambda qui ne connaissent pas Libre Office et toutes les fonctions (formulaires, requêtes et rapports) sont accessibles via un menu général (boutons) qui s’ouvre maintenant dès le lancement de Libre Office !!!
Cordialement