[Résolu][Basic] Message d'erreur vnd.sun.star.script à l'ouverture d'un document/feuille

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
internet.76
Fraîchement OOthentifié
Messages : 3
Inscription : 15 févr. 2025 17:32

[Résolu][Basic] Message d'erreur vnd.sun.star.script à l'ouverture d'un document/feuille

Message par internet.76 »


La modération vous a écrit: Problème d'ordre général : la balise à employer sera donc [Basic] puisque non lié à un module spécifique.

Bonjour,
Débutant avec le OOoBasic de LibreOffice, je teste les possibilités offertes par l'API UNO avec le module TestUNO ci-après.
A l'ouverture d'un document Writer j'ai l'affichage de quatre messages d'erreur (cf. fichier ErreursLibreOfficeWriter.png ci-joint).
A l'ouverture d'un feuille Calc j'ai l'affichage de deux messages d'erreur (cf. fichier ErreursLibreOfficeCalc.png ci-joint).
Le module "AfficherCheminComplet" cité dans les messages n'existe plus car je l'ai supprimé via l'EDI LibreOffice.
Je suis bloqué et mes connaissances sont insuffisantes. Si quelqu'un peut m'éclairer.

Code : Tout sélectionner

Sub TestUNO() ' Test API UNO - com.sun.star - Propriétés & Méthodes
	Dim vApplication As String
	Dim vDocument As Object
    Dim vCheminComplet As String   
    vDocument = ThisComponent
    If vDocument.supportsService("com.sun.star.text.TextDocument") Then
        vApplication = "Writer"
        If vDocument.hasLocation() Then
            vCheminComplet = ConvertFromURL(vDocument.getURL()) 
  		    vDocument.Title = vCheminComplet
    	End If
    ElseIf vDocument.supportsService("com.sun.star.sheet.SpreadsheetDocument") Then
        vApplication = "Calc"
        If vDocument.hasLocation() Then
            ' Convertir l'URL en chemin local
            vCheminComplet = ConvertFromURL(vDocument.getURL()) 
            vDocument.Title = vCheminComplet
        End If    
    ElseIf vDocument.supportsService("com.sun.star.presentation.PresentationDocument") Then
        vApplication = "Impress"
		' A compléter		
    ElseIf vDocument.supportsService("com.sun.star.drawing.DrawingDocument") Then
        vApplication = "Draw"
		' A compléter	
    End If           
End Sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par internet.76 le 17 févr. 2025 09:36, modifié 1 fois.
LibreOffice 24.8.4.2
Windows 11 (24H2)
Avatar de l’utilisateur
Mobydick_62
Membre OOrganisé
Membre OOrganisé
Messages : 80
Inscription : 07 avr. 2011 12:04
Localisation : Vendée (France)

Re: [Writer][Calc] Message d'erreur vnd.sun.star.script à l'ouverture d'un document/feuille

Message par Mobydick_62 »

Bonjour,
Tu as supprimé cette macro via l'EDI. Certes, mais manifestement ton document tente tout de même d'appeler cette macro. Je pense donc qu'une action à l'ouverture de ton document ou un événement sur ta feuille fait référence à cette macro. D'où l'erreur.
- Affichage/Barre outils/personnaliser et sur l'onglet événement voir si l'appel à cette macro existe. ou sinon :
- Clic droit sur l'onglet ou les onglets que tu as et cliquer sur événement de la feuille. Là aussi il peut y avoir l'appel à cette macro.
Cordialement
Libre Office Version: 7.0.4 (x64)
SE Windows 10
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9843
Inscription : 28 août 2010 08:45

Re: [Writer][Calc] Message d'erreur vnd.sun.star.script à l'ouverture d'un document/feuille

Message par micmac »

Bonjour,

Comme d'habitude, joindre le(s) document(s) qui pose(nt) problème fera gagner du temps aux bénévoles qui vous appoprtent leur aide :
Comment joindre un fichier
Touche Ctrl de Windows = touche cmd⌘ sur Mac
OpenOffice > Outils > Options sur Windows = OpenOffice > Préférences sur macOS
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1151
Inscription : 19 août 2018 05:20

Re: [Writer][Calc] Message d'erreur vnd.sun.star.script à l'ouverture d'un document/feuille

Message par Dolev »

Bonjour,
internet.76 a écrit : 15 févr. 2025 19:30 Le module "AfficherCheminComplet" cité dans les messages n'existe plus car je l'ai supprimé
S'il faut afficher le chemin complet d'un fichier, vous pouvez utiliser la bibliothèque Tools.
Comme ça, pas besoin de réinventer ce qui existe déjà.

Code : Tout sélectionner

Sub Main
	If Not GlobalScope.BasicLibraries.isLibraryLoaded("Tools") then
  		GlobalScope.BasicLibraries.LoadLibrary("Tools")
	End If

	sDocUrl = ThisComponent.URL
	sDocChemin = DirectoryNameoutofPath(sDocUrl, "/")
	msgbox sDocChemin

End Sub
Open Office 4.1.15 sous Windows 11
internet.76
Fraîchement OOthentifié
Messages : 3
Inscription : 15 févr. 2025 17:32

Re: [Writer][Calc] Message d'erreur vnd.sun.star.script à l'ouverture d'un document/feuille

Message par internet.76 »

- Affichage/Barre outils/personnaliser et sur l'onglet événement voir si l'appel à cette macro existe. ou sinon :
- Clic droit sur l'onglet ou les onglets que tu as et cliquer sur événement de la feuille. Là aussi il peut y avoir l'appel à cette macro.
Effectivement Mobydick_62. Bien vu.

1-J'ai commencé par remplacer les assignations "AfficherCheminComplet" qu'il y avait encore dans une feuille Calc, par "TestUNO". Mais comme l'erreur persistait, j'ai supprimé toutes les assignations (+sauvegardées), puis je les ai recréées avec "TestUNO". Plus d'erreur dans Writer ni dans Calc concernant ce point.
2- Mais une nouvelle erreur dans Calc est alors survenue (cf. ErreursLibreOfficeCalc2 joint). Je comprends que le premier IF porte sur une propriété ou méthode de document Writer (.TextDocument) qui est inaccessible pour une feuille Calc, sauf erreur de ma part. Une macro "universelle" paraissant a priori impossible, je vais devoir faire une macro pour Writer et une autre pour Cacl, et ainsi de suite par type d'application LibreOffice, sauf astuce (?).

Merci pour votre aide et pour les autres contributeurs.

PS
Je vais attendre une éventuelle réponse quelques jours puis passer ma demande en [Résolu].
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 24.8.4.2
Windows 11 (24H2)
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1151
Inscription : 19 août 2018 05:20

Re: [Writer][Calc] Message d'erreur vnd.sun.star.script à l'ouverture d'un document/feuille

Message par Dolev »

internet.76 a écrit : 16 févr. 2025 14:27Une macro "universelle" paraissant a priori impossible
Ah bon et l'exemple que je fournis alors ? :marto:
Open Office 4.1.15 sous Windows 11
internet.76
Fraîchement OOthentifié
Messages : 3
Inscription : 15 févr. 2025 17:32

Re: [Writer][Calc] Message d'erreur vnd.sun.star.script à l'ouverture d'un document/feuille

Message par internet.76 »

Ah bon et l'exemple que je fournis alors ?
Un grand merci Dolev ! J'ai mis de côté pour quand je serai capable de plonger dans un script de 450 instructions.
Mais, comme expliqué en introduction, mon objectif de débutant est de comprendre comment fonctionne le langage objet et l'API UNO, en commençant progressivement avec de petits scripts ce qui m'a permis d'avoir déjà une idée du fonctionnement des assignations d'évènements grâce au conseil de Mobydick_62 et de mesurer la luxuriance de com.sun.star.*.
LibreOffice 24.8.4.2
Windows 11 (24H2)
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25994
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Writer][Calc] Message d'erreur vnd.sun.star.script à l'ouverture d'un document/feuille

Message par Dude »

Salut,
internet.76 a écrit : 16 févr. 2025 17:17 comprendre comment fonctionne le langage objet et l'API UNO
Tu prends le problème par le mauvais bout.
Explorer l'API se fait avec l'outil XRay