'retrouver le chemin, le nom de base et l'extension d'un fichier à partir de ses nom et chemin complet (3 solutions)
Sub test()
Dim Fich$
Fich = Application.GetOpenFilename
MsgBox GetInfo(Fich)(0) & vbLf & _
GetInfo(Fich)(1) & vbLf & GetInfo(Fich)(2)
MsgBox SplitInfo(Fich)(0) & vbLf & _
SplitInfo(Fich)(1) & vbLf & SplitInfo(Fich)(2)
MsgBox FSOInfo(Fich)(0) & vbLf & _
FSOInfo(Fich)(1) & vbLf & FSOInfo(Fich)(2)
End Sub
Function GetInfo(ByVal s As String) As Variant
'Iznogood, mpfe
'Utilisation:
'GetInfo('c:\\rep\\test.xls')(0) => 'C:'
'GetInfo('c:\\rep\\test.xls')(1) => 'rep\\'
'GetInfo('c:\\rep\\test.xls')(2) => 'test.xls'
Dim Dr As String, Rep As String, Fic As String
Dr = Left(s, InStr(1, s, '\\') - 1)
Fic = s
Do
Fic = Right(Fic, Len(Fic) - InStr(1, Fic, '\\'))
Loop Until InStr(1, Fic, '\\') = 0
Rep = Mid(s, Len(Dr) + 1, Len(s) - Len(Dr) - Len(Fic))
GetInfo = Array(Dr, Rep, Fic)
End Function
Function SplitInfo(NomFich$)
Dim Chemin$, NomBase$, Ext$
NomBase = Split(NomFich, '\\')(UBound(Split(NomFich, '\\')))
Ext = Split(NomBase, '.')(1)
Chemin = Left(NomFich, Len(NomFich) - Len(NomBase))
NomBase = Split(NomBase, '.')(0)
SplitInfo = Array(Chemin, NomBase, Ext)
End Function 'fs
Function FSOInfo(NomFich$)
Dim fso, Fich, Chemin, NomBase, Ext
Set fso = CreateObject('Scripting.FileSystemObject')
Set Fich = fso.getfile(NomFich)
Chemin = Fich.ParentFolder
NomBase = fso.GetBaseName(NomFich)
Ext = fso.GetExtensionName(NomFich)
FSOInfo = Array(Chemin, NomBase, Ext)
End Function 'fs