Trouver lien absolu pour le convertir en lien relatif
Résolu
Nai
Messages postés
714
Date d'inscription
Statut
Membre
Dernière intervention
-
Nai Messages postés 714 Date d'inscription Statut Membre Dernière intervention -
Nai Messages postés 714 Date d'inscription Statut Membre Dernière intervention -
Bonsoir la communauté ^^
Je cherche à ouvrir un fichier depuis une macro. Ce fichier à ouvrir se trouve dans le même dossier que le fichier où se trouve cette même macro (au pire dans un dossier enfant).
Je suis "parvenu" à déterminer le chemin du fichier source avec :
Le MsgBox m'indique effectivement le chemin absolu du fichier (peut-être existe-t-il un moyen plus simple).
Je pensais pouvoir réutiliser cette information pour la suite de ce que je veux faire.
C'est à dire ouvrir un fichier après avoir saisi le bon mot de passe :
Comment remplacer la partie indiquant le chemin du fichier par celle du dossier indiquée par strCheminParent ?
Merci d'avance de votre aide ! :)
Je cherche à ouvrir un fichier depuis une macro. Ce fichier à ouvrir se trouve dans le même dossier que le fichier où se trouve cette même macro (au pire dans un dossier enfant).
Je suis "parvenu" à déterminer le chemin du fichier source avec :
Sub RecupChemin ' déclaration des variables Dim objWriter As Object ' déclaration de notre fichier Dim strCheminParent As String ' chemin sans le fichier Dim tab() As String ' tableau permettant d'avoir le détail du chemin Dim i As Integer objWriter = ThisComponent tab() = Split(Right(objWriter.URL,Len(objWriter.URL)-8),"/") For I = 0 to Ubound(tab())-1 strCheminParent =strCheminParent & tab(i)&"\" Next I MsgBox strCheminParent End Sub
Le MsgBox m'indique effectivement le chemin absolu du fichier (peut-être existe-t-il un moyen plus simple).
Je pensais pouvoir réutiliser cette information pour la suite de ce que je veux faire.
C'est à dire ouvrir un fichier après avoir saisi le bon mot de passe :
Sub ouvrirfinjeu Dim Fichier As String Dim Wb As Object Dim Args() DIm mdp as String mdp = INPUTBOX("Mot de passe") If mdp = "mdp" then goto OUVRE else goto FIN OUVRE: rem ouveture en pps ou odp Fichier = ConvertToUrl ("C:\Users\chemin\finjeu.pps") Wb = StarDesktop.loadComponentFromURL(Fichier,"_blank",0 ,Args() ) FIN: End Sub
Comment remplacer la partie indiquant le chemin du fichier par celle du dossier indiquée par strCheminParent ?
Merci d'avance de votre aide ! :)
A voir également:
- Trouver lien absolu pour le convertir en lien relatif
- Créer un lien pour partager des photos - Guide
- Lien url - Guide
- Verificateur de lien - Guide
- Lien de rajout pour bara facebook - Forum Facebook
- Piratage compte facebook avec liens Iphone X ✓ - Forum Virus
1 réponse
Bonjour
après avoir bidouillé il s'avère que la difficulté est de jongler avec séparateurs / et \ pour les adresses de fichier type file:///C:/rep et c:\rep
une propositiion de solution (supprimer ensuite les msgbox ou précéder d e REM)
après avoir bidouillé il s'avère que la difficulté est de jongler avec séparateurs / et \ pour les adresses de fichier type file:///C:/rep et c:\rep
une propositiion de solution (supprimer ensuite les msgbox ou précéder d e REM)
Sub ouvrirfinjeu Dim Fichier_mdp_ok As String Dim Fichier_mdp_nok As String Dim lance_mdp_ok As Object Dim lance_mdp_nok As Object Dim Args() DIm mdp as String rem RecupChemin ' déclaration des variables Dim objWriter As Object ' déclaration de notre fichier Dim strCheminParent As String ' chemin sans le fichier Dim tab() As String ' tableau permettant d'avoir le détail du chemin Dim i As Integer objWriter = ThisComponent tab() = Split(Right(objWriter.URL,Len(objWriter.URL)-8),"/") For I = 0 to Ubound(tab())-1 strCheminParent =strCheminParent & tab(i)&"\" Next I MsgBox " adresse type c: "&strCheminParent rem nombre de caractère de l'adresse type c: nbcar_chemin = len(strCheminParent) msgbox "nb car type c: "& nbcar_chemin rem nombre de cractère de file:/// = 8 rem nombre de caractère du chemin type file:/// nbcar_chemin_file= nbcar_chemin+8 msgbox nbcar_chemin_file rem mot de passe mdp = INPUTBOX("Mot de passe") If mdp = "mdp" then goto MDP_OK else goto ERREUR_MDP MDP_OK: Fichier_mdp_ok = ConvertToUrl (left(ThisComponent.getURL(),nbcar_chemin_file)&"finjeu.odp") lance_mdp_ok = StarDesktop.loadComponentFromURL(Fichier_mdp_ok,"_blank",0 ,Args() ) exit sub ERREUR_MDP: rem ouveture fichier mdp incorrect Fichier_mdp_nok = ConvertToUrl (left(ThisComponent.getURL(),nbcar_chemin_file)&"erreurmdp.odp") lance_mdp_nok = StarDesktop.loadComponentFromURL(Fichier_mdp_nok,"_blank",0 ,Args() ) End Sub
Tout fonctionne à merveille. J'ai simplement changé mon dossier de place. On verra ce que ça donne depuis un autre poste.
Juste une question. A quoi servent ces MsgBox ? Quel intérêt ai-je de savoir le nombre de caractères contenus dans le chemin du fichier ?
les msgbox peuvent être supprimées, c'était pour déboguer.