Comme je cherche depuis longtemps une macro permettant d'ouvrir un fichier à partir d'un contrôle texte de formulaire dans lequel est inscrit une adresse de fichier, d'URL, ou de mail et que j'ai trouvé quelque chose qui marche, je mets cette macro sur le forum pour amélioration éventuelle.
J'ai un formulaire dans lequel il y un contrôle de table et des contrôles de texte liés
La macro me permet en cliquant sur un bouton (la macro est dans évènements bouton de souris enfoncé)à côté du contrôle texte contenant l'adresse du fichier, d'ouvrir ce fichier.
ça marche pour les pdf, url, fichiers .odt et .eml donc tous les fichiers je suppose...
Code : Tout sélectionner
REM ***** BASIC *****
Option Explicit
Sub SubstitutHyperlien
Dim monDocument As Object
Dim lesFormulaires AS Object, unFormulaire As Object, unSousFormulaire As Object
Dim monCtrl As Object, Adresse As String
Dim sv As Object, fichier As String
monDocument = thisComponent
lesFormulaires = monDocument.DrawPage.Forms
unFormulaire = lesFormulaires.getByName("Formulaire principal")'nom du contrôle de table dans le formulaire, qui sert de liste principale
unSousFormulaire = unFormulaire.getByName("Sous formulaire")'nom du sous formulaire lié au contrôle de table
monCtrl = unSousFormulaire.getByName("Adresse courrier scanné")'nom contrôle texte contenant l'adresse du fichier à ouvrir, entre guillemets doubles
Adresse = monCtrl.Text
sv = createUnoService("com.sun.star.system.SystemShellExecute")
sv.execute(Adresse, "",0)
End Sub