[VBA] Trouver le nom du dossier parent du fichier Excel

Bonjour,

Je vais vous illustrer par un exemple mon problème:

J'ai un fichier nommé 123.xls.

Celui-ci est placé dans C:\aaa\bbb\ccc\ddd.

Le chemin complet est C:\aaa\bbb\ccc\ddd\123.xls.

Je voudrais créer une macro qui me renvoie C:\aaa\bbb\ccc en chaine de caractère (dans une variable chemin)

Avec la fonction ActiveWorkbook.path, je récupère C:\aaa\bbb\ccc\ddd.

Avec la fonction Right(ActiveWorkbook.path, 3) je récupère ddd.

Avec la fonction Left(ActiveWorkbook.path, 14) je récupère C:\aaa\bbb\ccc.

En fait, il me faudrait ce que la fonction Right(ActiveWorkbook.path, 3) m'enlève :mrgreen:

Or, les dossiers aaa, bbb et ccc n'ont pas une longueur fixe, donc je ne peux utiliser cette dernière fonction.

Et j'ai essayé la soustraction de chaine de caractère mais cela ne fonctionne pas :lol:

Comment pourrais-je récupérer C:\aaa\bbb\ccc ?

Cordialement

bonjour,

voici une possibilité :

Sub test()
s = ActiveWorkbook.Path
Var = Split(s, "\")
i = Len(Var(UBound(Var) - 1))
ss = Left(s, Len(s) - i - 1)
MsgBox ss
End Sub

A+

Bonjour,

essaie ceci :

Sub test()
'Macro Dan le 31/10/2010
Dim chemin As String
ChDir (ThisWorkbook.Path)
ChDir ".."
chemin = CurDir(ThisWorkbook.Path)
End Sub

Si tu veux voir le chemin exact tu peux ajouter ceci à la fin de ton code --> Msgbox Chemin

Amicalement

Dan a écrit :

Bonjour,

essaie ceci :

Sub test()
'Macro Dan le 31/10/2010
Dim chemin As String
ChDir (ThisWorkbook.Path)
ChDir ".."
chemin = CurDir(ThisWorkbook.Path)
End Sub

Si tu veux voir le chemin exact tu peux ajouter ceci à la fin de ton code --> Msgbox Chemin

Amicalement

Bonjour,

Merci c'est carrément bien vu !!! je n'y avais même pas pensé

Merci, merci !

Bonjour à tous,

Désolé pour le déterrage de sujet, mais en cherchant je suis tombé sur ce fil

Je passe juste pour vous fournir une petite fonction

Function DossierParent(sPath As String)
  ' Vérifier la construction du chemin
  If Right(sPath, 1) = "\" Then sPath = Left(sPath, Len(sPath) - 1)
  ' Dossier parent = chemin avant le dernier slash
  DossierParent = Left(sPath, InStrRev(sPath, "\"))
End Function

Si ça peut servir

Rechercher des sujets similaires à "vba trouver nom dossier parent fichier"