Bonjour,
je voudrais savoir si il existe des fonctions qui permettent de gerer les
chemins en mode relatif (relative paths) et qui sauraient effectuer
directement la conversion avec les "." et les ".." en fonction du chemin
actuel de l'appli VB(A)?
Bonjour,
je voudrais savoir si il existe des fonctions qui permettent de gerer les
chemins en mode relatif (relative paths) et qui sauraient effectuer
directement la conversion avec les "." et les ".." en fonction du chemin
actuel de l'appli VB(A)?
Bonjour,
je voudrais savoir si il existe des fonctions qui permettent de gerer les
chemins en mode relatif (relative paths) et qui sauraient effectuer
directement la conversion avec les "." et les ".." en fonction du chemin
actuel de l'appli VB(A)?
c'est peut-être le contraire qui est
demandé ? convertir un chemin
absolu en chemin relatif ?
si c'est la cas, je n'ai rien trouvé,
et j'ai un petit bout de code qui
réalise cela. Si intéressé : le
dire, envoi ici même.
cordialement.
c'est peut-être le contraire qui est
demandé ? convertir un chemin
absolu en chemin relatif ?
si c'est la cas, je n'ai rien trouvé,
et j'ai un petit bout de code qui
réalise cela. Si intéressé : le
dire, envoi ici même.
cordialement.
c'est peut-être le contraire qui est
demandé ? convertir un chemin
absolu en chemin relatif ?
si c'est la cas, je n'ai rien trouvé,
et j'ai un petit bout de code qui
réalise cela. Si intéressé : le
dire, envoi ici même.
cordialement.
transforme chemin absolu en chemin relatif
Public Function CheminRelatif _
(ByVal Chact As String, ByVal Chref As String) As String
'YYYYYYYYYYYYYYYYYYYY
'Y Renvoie l'adresse de Chact (dossier) par rapport à ChRef
'Y Exemple : Chact="c:program files" , ChRef="c:windows"
'Y ==> CHEMINRELATIF = "..program files"
'YYYYYYYYYYYYYYYYYYYY
Dim Morceau1() As String, Morceau2(), Prov As String
Dim Chemin1, CheminRef As String
Dim TailleMorceau1 As Integer, TailleMorceau2, I, j As Integer
ReDim Morceau1(1 To 1), Morceau2(1 To 1)
Chemin1 = Chact
If Right(Chemin1, 1) = "" Then
Chemin1 = Left(Chemin1, Len(Chemin1) - 1)
End If
CheminRef = Chref
If Right(CheminRef, 1) = "" Then
CheminRef = Left(CheminRef, Len(CheminRef) - 1)
End If
For I = 1 To Len(Chemin1) '* pour chemin1
'YYYY Marque chaque élément du chemin dans un tableau
Select Case Mid(Chemin1, I, 1)
Case Is = ""
TailleMorceau1 = TailleMorceau1 + 1
ReDim Preserve Morceau1(1 To TailleMorceau1)
Morceau1(TailleMorceau1) = Prov
Prov = vbNullString
Case Else
Prov = Prov & Mid(Chemin1, I, 1)
End Select
Next I
'ajoute le dernier élément (non précédé d'un slash)
TailleMorceau1 = TailleMorceau1 + 1
ReDim Preserve Morceau1(1 To TailleMorceau1)
Morceau1(TailleMorceau1) = Prov
For I = 1 To Len(CheminRef) ' pour CheminRef
Select Case Mid(CheminRef, I, 1)
Case Is = ""
TailleMorceau2 = TailleMorceau2 + 1
ReDim Preserve Morceau2(1 To TailleMorceau2)
Morceau2(TailleMorceau2) = Prov
Prov = vbNullString
Case Else
Prov = Prov & Mid(CheminRef, I, 1)
End Select
Next I
TailleMorceau2 = TailleMorceau2 + 1
ReDim Preserve Morceau2(1 To TailleMorceau2)
Morceau2(TailleMorceau2) = Prov
Prov = vbNullString
For I = 1 To TailleMorceau2 - 1
Prov = Prov & ".."
Next I
For I = 2 To TailleMorceau1
Prov = Prov & Morceau1(I) & ""
Next I
CheminRelatif = Left(Prov, Len(Prov) - 1) 'retire le "" final
End Function
pour le contraire, cela se fait "tout seul"
cordialement
transforme chemin absolu en chemin relatif
Public Function CheminRelatif _
(ByVal Chact As String, ByVal Chref As String) As String
'YYYYYYYYYYYYYYYYYYYY
'Y Renvoie l'adresse de Chact (dossier) par rapport à ChRef
'Y Exemple : Chact="c:program files" , ChRef="c:windows"
'Y ==> CHEMINRELATIF = "..program files"
'YYYYYYYYYYYYYYYYYYYY
Dim Morceau1() As String, Morceau2(), Prov As String
Dim Chemin1, CheminRef As String
Dim TailleMorceau1 As Integer, TailleMorceau2, I, j As Integer
ReDim Morceau1(1 To 1), Morceau2(1 To 1)
Chemin1 = Chact
If Right(Chemin1, 1) = "" Then
Chemin1 = Left(Chemin1, Len(Chemin1) - 1)
End If
CheminRef = Chref
If Right(CheminRef, 1) = "" Then
CheminRef = Left(CheminRef, Len(CheminRef) - 1)
End If
For I = 1 To Len(Chemin1) '* pour chemin1
'YYYY Marque chaque élément du chemin dans un tableau
Select Case Mid(Chemin1, I, 1)
Case Is = ""
TailleMorceau1 = TailleMorceau1 + 1
ReDim Preserve Morceau1(1 To TailleMorceau1)
Morceau1(TailleMorceau1) = Prov
Prov = vbNullString
Case Else
Prov = Prov & Mid(Chemin1, I, 1)
End Select
Next I
'ajoute le dernier élément (non précédé d'un slash)
TailleMorceau1 = TailleMorceau1 + 1
ReDim Preserve Morceau1(1 To TailleMorceau1)
Morceau1(TailleMorceau1) = Prov
For I = 1 To Len(CheminRef) ' pour CheminRef
Select Case Mid(CheminRef, I, 1)
Case Is = ""
TailleMorceau2 = TailleMorceau2 + 1
ReDim Preserve Morceau2(1 To TailleMorceau2)
Morceau2(TailleMorceau2) = Prov
Prov = vbNullString
Case Else
Prov = Prov & Mid(CheminRef, I, 1)
End Select
Next I
TailleMorceau2 = TailleMorceau2 + 1
ReDim Preserve Morceau2(1 To TailleMorceau2)
Morceau2(TailleMorceau2) = Prov
Prov = vbNullString
For I = 1 To TailleMorceau2 - 1
Prov = Prov & ".."
Next I
For I = 2 To TailleMorceau1
Prov = Prov & Morceau1(I) & ""
Next I
CheminRelatif = Left(Prov, Len(Prov) - 1) 'retire le "" final
End Function
pour le contraire, cela se fait "tout seul"
cordialement
transforme chemin absolu en chemin relatif
Public Function CheminRelatif _
(ByVal Chact As String, ByVal Chref As String) As String
'YYYYYYYYYYYYYYYYYYYY
'Y Renvoie l'adresse de Chact (dossier) par rapport à ChRef
'Y Exemple : Chact="c:program files" , ChRef="c:windows"
'Y ==> CHEMINRELATIF = "..program files"
'YYYYYYYYYYYYYYYYYYYY
Dim Morceau1() As String, Morceau2(), Prov As String
Dim Chemin1, CheminRef As String
Dim TailleMorceau1 As Integer, TailleMorceau2, I, j As Integer
ReDim Morceau1(1 To 1), Morceau2(1 To 1)
Chemin1 = Chact
If Right(Chemin1, 1) = "" Then
Chemin1 = Left(Chemin1, Len(Chemin1) - 1)
End If
CheminRef = Chref
If Right(CheminRef, 1) = "" Then
CheminRef = Left(CheminRef, Len(CheminRef) - 1)
End If
For I = 1 To Len(Chemin1) '* pour chemin1
'YYYY Marque chaque élément du chemin dans un tableau
Select Case Mid(Chemin1, I, 1)
Case Is = ""
TailleMorceau1 = TailleMorceau1 + 1
ReDim Preserve Morceau1(1 To TailleMorceau1)
Morceau1(TailleMorceau1) = Prov
Prov = vbNullString
Case Else
Prov = Prov & Mid(Chemin1, I, 1)
End Select
Next I
'ajoute le dernier élément (non précédé d'un slash)
TailleMorceau1 = TailleMorceau1 + 1
ReDim Preserve Morceau1(1 To TailleMorceau1)
Morceau1(TailleMorceau1) = Prov
For I = 1 To Len(CheminRef) ' pour CheminRef
Select Case Mid(CheminRef, I, 1)
Case Is = ""
TailleMorceau2 = TailleMorceau2 + 1
ReDim Preserve Morceau2(1 To TailleMorceau2)
Morceau2(TailleMorceau2) = Prov
Prov = vbNullString
Case Else
Prov = Prov & Mid(CheminRef, I, 1)
End Select
Next I
TailleMorceau2 = TailleMorceau2 + 1
ReDim Preserve Morceau2(1 To TailleMorceau2)
Morceau2(TailleMorceau2) = Prov
Prov = vbNullString
For I = 1 To TailleMorceau2 - 1
Prov = Prov & ".."
Next I
For I = 2 To TailleMorceau1
Prov = Prov & Morceau1(I) & ""
Next I
CheminRelatif = Left(Prov, Len(Prov) - 1) 'retire le "" final
End Function
pour le contraire, cela se fait "tout seul"
cordialement
ce n'est pas très clair ?
le reproche est comique !
ce n'est pas très clair ?
le reproche est comique !
ce n'est pas très clair ?
le reproche est comique !
transforme chemin absolu en chemin relatif
Public Function CheminRelatif _
(ByVal Chact As String, ByVal Chref As String) As String
'YYYYYYYYYYYYYYYYYYYY
'Y Renvoie l'adresse de Chact (dossier) par rapport à ChRef
'Y Exemple : Chact="c:program files" , ChRef="c:windows"
'Y ==> CHEMINRELATIF = "..program files"
'YYYYYYYYYYYYYYYYYYYY
Dim Morceau1() As String, Morceau2(), Prov As String
Dim Chemin1, CheminRef As String
Dim TailleMorceau1 As Integer, TailleMorceau2, I, j As Integer
ReDim Morceau1(1 To 1), Morceau2(1 To 1)
Chemin1 = Chact
If Right(Chemin1, 1) = "" Then
Chemin1 = Left(Chemin1, Len(Chemin1) - 1)
End If
CheminRef = Chref
If Right(CheminRef, 1) = "" Then
CheminRef = Left(CheminRef, Len(CheminRef) - 1)
End If
For I = 1 To Len(Chemin1) '* pour chemin1
'YYYY Marque chaque élément du chemin dans un tableau
Select Case Mid(Chemin1, I, 1)
Case Is = ""
TailleMorceau1 = TailleMorceau1 + 1
ReDim Preserve Morceau1(1 To TailleMorceau1)
Morceau1(TailleMorceau1) = Prov
Prov = vbNullString
Case Else
Prov = Prov & Mid(Chemin1, I, 1)
End Select
Next I
'ajoute le dernier élément (non précédé d'un slash)
TailleMorceau1 = TailleMorceau1 + 1
ReDim Preserve Morceau1(1 To TailleMorceau1)
Morceau1(TailleMorceau1) = Prov
For I = 1 To Len(CheminRef) ' pour CheminRef
Select Case Mid(CheminRef, I, 1)
Case Is = ""
TailleMorceau2 = TailleMorceau2 + 1
ReDim Preserve Morceau2(1 To TailleMorceau2)
Morceau2(TailleMorceau2) = Prov
Prov = vbNullString
Case Else
Prov = Prov & Mid(CheminRef, I, 1)
End Select
Next I
TailleMorceau2 = TailleMorceau2 + 1
ReDim Preserve Morceau2(1 To TailleMorceau2)
Morceau2(TailleMorceau2) = Prov
Prov = vbNullString
For I = 1 To TailleMorceau2 - 1
Prov = Prov & ".."
Next I
For I = 2 To TailleMorceau1
Prov = Prov & Morceau1(I) & ""
Next I
CheminRelatif = Left(Prov, Len(Prov) - 1) 'retire le "" final
End Function
pour le contraire, cela se fait "tout seul"
cordialement
transforme chemin absolu en chemin relatif
Public Function CheminRelatif _
(ByVal Chact As String, ByVal Chref As String) As String
'YYYYYYYYYYYYYYYYYYYY
'Y Renvoie l'adresse de Chact (dossier) par rapport à ChRef
'Y Exemple : Chact="c:program files" , ChRef="c:windows"
'Y ==> CHEMINRELATIF = "..program files"
'YYYYYYYYYYYYYYYYYYYY
Dim Morceau1() As String, Morceau2(), Prov As String
Dim Chemin1, CheminRef As String
Dim TailleMorceau1 As Integer, TailleMorceau2, I, j As Integer
ReDim Morceau1(1 To 1), Morceau2(1 To 1)
Chemin1 = Chact
If Right(Chemin1, 1) = "" Then
Chemin1 = Left(Chemin1, Len(Chemin1) - 1)
End If
CheminRef = Chref
If Right(CheminRef, 1) = "" Then
CheminRef = Left(CheminRef, Len(CheminRef) - 1)
End If
For I = 1 To Len(Chemin1) '* pour chemin1
'YYYY Marque chaque élément du chemin dans un tableau
Select Case Mid(Chemin1, I, 1)
Case Is = ""
TailleMorceau1 = TailleMorceau1 + 1
ReDim Preserve Morceau1(1 To TailleMorceau1)
Morceau1(TailleMorceau1) = Prov
Prov = vbNullString
Case Else
Prov = Prov & Mid(Chemin1, I, 1)
End Select
Next I
'ajoute le dernier élément (non précédé d'un slash)
TailleMorceau1 = TailleMorceau1 + 1
ReDim Preserve Morceau1(1 To TailleMorceau1)
Morceau1(TailleMorceau1) = Prov
For I = 1 To Len(CheminRef) ' pour CheminRef
Select Case Mid(CheminRef, I, 1)
Case Is = ""
TailleMorceau2 = TailleMorceau2 + 1
ReDim Preserve Morceau2(1 To TailleMorceau2)
Morceau2(TailleMorceau2) = Prov
Prov = vbNullString
Case Else
Prov = Prov & Mid(CheminRef, I, 1)
End Select
Next I
TailleMorceau2 = TailleMorceau2 + 1
ReDim Preserve Morceau2(1 To TailleMorceau2)
Morceau2(TailleMorceau2) = Prov
Prov = vbNullString
For I = 1 To TailleMorceau2 - 1
Prov = Prov & ".."
Next I
For I = 2 To TailleMorceau1
Prov = Prov & Morceau1(I) & ""
Next I
CheminRelatif = Left(Prov, Len(Prov) - 1) 'retire le "" final
End Function
pour le contraire, cela se fait "tout seul"
cordialement
transforme chemin absolu en chemin relatif
Public Function CheminRelatif _
(ByVal Chact As String, ByVal Chref As String) As String
'YYYYYYYYYYYYYYYYYYYY
'Y Renvoie l'adresse de Chact (dossier) par rapport à ChRef
'Y Exemple : Chact="c:program files" , ChRef="c:windows"
'Y ==> CHEMINRELATIF = "..program files"
'YYYYYYYYYYYYYYYYYYYY
Dim Morceau1() As String, Morceau2(), Prov As String
Dim Chemin1, CheminRef As String
Dim TailleMorceau1 As Integer, TailleMorceau2, I, j As Integer
ReDim Morceau1(1 To 1), Morceau2(1 To 1)
Chemin1 = Chact
If Right(Chemin1, 1) = "" Then
Chemin1 = Left(Chemin1, Len(Chemin1) - 1)
End If
CheminRef = Chref
If Right(CheminRef, 1) = "" Then
CheminRef = Left(CheminRef, Len(CheminRef) - 1)
End If
For I = 1 To Len(Chemin1) '* pour chemin1
'YYYY Marque chaque élément du chemin dans un tableau
Select Case Mid(Chemin1, I, 1)
Case Is = ""
TailleMorceau1 = TailleMorceau1 + 1
ReDim Preserve Morceau1(1 To TailleMorceau1)
Morceau1(TailleMorceau1) = Prov
Prov = vbNullString
Case Else
Prov = Prov & Mid(Chemin1, I, 1)
End Select
Next I
'ajoute le dernier élément (non précédé d'un slash)
TailleMorceau1 = TailleMorceau1 + 1
ReDim Preserve Morceau1(1 To TailleMorceau1)
Morceau1(TailleMorceau1) = Prov
For I = 1 To Len(CheminRef) ' pour CheminRef
Select Case Mid(CheminRef, I, 1)
Case Is = ""
TailleMorceau2 = TailleMorceau2 + 1
ReDim Preserve Morceau2(1 To TailleMorceau2)
Morceau2(TailleMorceau2) = Prov
Prov = vbNullString
Case Else
Prov = Prov & Mid(CheminRef, I, 1)
End Select
Next I
TailleMorceau2 = TailleMorceau2 + 1
ReDim Preserve Morceau2(1 To TailleMorceau2)
Morceau2(TailleMorceau2) = Prov
Prov = vbNullString
For I = 1 To TailleMorceau2 - 1
Prov = Prov & ".."
Next I
For I = 2 To TailleMorceau1
Prov = Prov & Morceau1(I) & ""
Next I
CheminRelatif = Left(Prov, Len(Prov) - 1) 'retire le "" final
End Function
pour le contraire, cela se fait "tout seul"
cordialement