Tes explications sont oiseuses...
Si j'enregistre une macro avec Fichier ouvrir, j'obtient ça :
Sub Macro1()
Workbooks.Open Filename:= _
"C:\Users\Utilisateur\Desktop\Documents\_EXC\Suivi Ménage.xlsm"
End Sub
par suite avec la macro (SubstSplit) citée plus haut tu peux écrire :
Sub test1()
Dim Arr(), NomEtChemin$, i%, chemin$
NomEtChemin = "C:\Users\Utilisateur\Desktop\Documents\_EXC\Suivi Ménage.xlsm"
Arr = SubstSplit(NomEtChemin, "\")
For i = 1 To UBound(Arr) - 1
chemin = chemin & Arr(i) & "\"
Next
Debug.Print chemin
End Sub
ou encore si tu ne veux pas passer par l'enregistreur (mais toujours avec SubstSplit...)
Sub test2()
Dim chemin$, NomEtChemin$, Arr(), i%
NomEtChemin$ = Application.GetOpenFilename
Arr = SubstSplit(NomEtChemin, "\")
For i = 1 To UBound(Arr) - 1
chemin = chemin & Arr(i) & "\"
Next
Debug.Print chemin
End Sub
A+