Trouver lien absolu pour le convertir en lien relatif
Résolu
Nai
Messages postés
765
Statut
Membre
-
Nai Messages postés 765 Statut Membre -
Nai Messages postés 765 Statut Membre -
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.