Ouverture de document par macro

Bonjour,
j’ai migré de Mac OS à Linux Debian.

Mes macros d’ouverture de documents fonctionnent ou pas, de manière incompréhensible.

Des documents situés dans le dossier Documents sont ouverts sans difficulté.
D’autres documents situés dans le dossier Public ne sont pas ouverts, alors que le chemin est écrit de la même manière.

À tout hasard, j’ai remplacé les espaces par des tirets bas, mais ça ne résoud pas le problème.

Les messages d’erreur (le texte ne peut pas être copié)

  1. Le document n’existe pas
  2. Erreur d’exécution Basic

Unsupported URL <file:///…type detection failed

Ce chemin est refusé

“file:///~/Public/Source_documents/Organisation/Panneau_documents.ods”

Ce chemin fonctionne

“file:///~/Documents/Bureautique/LibreOffice/Calc/Mes%20fichiers/TousTests.ods”

Où est mon erreur ?
Merci de vos lumières.

Configuration

Version: 7.4.7.2 / LibreOffice Community
Build ID: 723314e595e8007d3cf785c16538505a1c878ca5
CPU threads: 20; OS: Linux 5.10; UI render: default; VCL: gtk3
Locale: fr-FR (fr_FR.UTF-8); UI: fr-FR
Calc: threaded

les droits sur les deux dossiers sont-ils identiques ?

Bonjour,
j’y avais pensé, je viens de revérifier, ce sont les mêmes droits.

Dans une URL, les espaces dans le chemin doivent être masqués par la chaîne de caractères %20.

dans ton exemple qui ne fonctionne pas, ce n’est pas le cas, mais dans ton deuxième exemple.

Utilise toujours la fonction basic convertToURL( … ) pour convertir les chemins d’accès système en notation URL.

d’après ma lecture de sa demande, file:///~/Documents/Bureautique/LibreOffice/Calc/Mes%20fichiers/TousTests.ods fonctionne !

re,
je confirme, le chemin qui ne fonctionne pas n’a aucune espace.
Les droits sur les fichiers sont identiques, notamment “Autoriser ce fichier à être exécuté comme un programme”

Edit : ça se corse.
Le fichier “Panneau_documents.ods” copié dans le dossier " Documents/Bureautique/LibreOffice/Calc/Mes%20fichiers/" plante aussi la macro.
Le problème serait sur le fichier .ods et non au niveau du dossier ???

Je sèche.

est pourtant accepté selon ton premier post. Le problème est peut-être dans le fichier Panneau_documents.ods
Pourrais-tu fournir la macro ou un fichier la contenant pour qu’on puisse tester ailleurs. Je suis sous Fedora38

Oui bien sûr. Merci de prendre du temps pour ça.

Sub opentablobord
' source : https://fr.wikibooks.org/wiki/LibreOffice_et_OpenOffice.org/Writer/Macros
  dim vPath as String, URL as String
  vPath = "~/Public/Source_documents/Organisation/Panneau_documents.ods"
  URL = ConvertToUrl(vPath)
  Document1 = StarDesktop.LoadComponentFromURL(URL,,0, array())
End Sub

aucun problème d’ouverture chez moi, quelque soit le fichier et le dossier. As-tu essayé avec un nouveau fichier ods du même nom : Panneau_documents.ods

Bingo !
J’ai renommé le document dans l’un et l’autre dossiers, la macro a fonctionné sans broncher.

J’ai remis le nom initial et ça fonctionne toujours.

Hypothèse : un caractère encodé différemment par Mac OS, peut-être le tiret bas. Mystère…

Merci @fgland

Edit : test complémentaire avec un chemin comprenant un caractère accentué. Renommer en remettant le même accent permet à la macro de fonctionner. Je vais devoir faire le ménage…