XL 2016 Récupérer le nom du dossier ou est stocké le classeur

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

AxelViens

XLDnaute Nouveau
Bonjour,

Je souhaiterais récupérer dans une cellule le nom du dossier ou est stocké mon classeur.

Ex :

C://User/xxx/Dossier1/Sous-Dossier1/Fichier.xlsx --> Sous-Dossier1
C://User/xxx/Dossier1/Sous-Dossier2/Sous-sous-Dossier21/Fichier.xlsx --> Sous-sous-Dossier21

J'ai essayé beaucoup de formule trouvé sur internet , mais aucune ne fonctionne chez moi ..

Si vous avez des idées..
 
Solution
Je me suis trompé dans le code (trop vite et pas réfléchi).
Celui-ci devrait couvrir tous les cas:
- Pas de Path
- Path limité au Drive Windows
- Path Windows
- Path Réseau
VB:
Option Explicit

Sub a()
    MsgBox Dossier
End Sub

Function Dossier() As String
    Dim TSpl() As String
    
    'Fichier non encore enregistré
    If Len(ThisWorkbook.Path) = 0 Then
        Dossier = "N/A"
        Exit Function
    End If
    
    'Séparateur Windows "\"
    If InStr(ThisWorkbook.Path, "\") > 0 Then
        TSpl = Split(ThisWorkbook.Path, "\")
    End If
    
    'Séparateur Réseau "/"
    If InStr(ThisWorkbook.Path, "/") > 0 Then
        TSpl = Split(ThisWorkbook.Path, "/")
    End If
    
    If Not (Not TSpl) Then
        Dossier =...
Bonjour.
À essayer :
VB:
Option Explicit
Function Dossier() As String
   Dim TSpl() As String
   TSpl = Split(ThisWorkbook.Path, "\")
   Dossier = TSpl(UBound(TSpl) - 1)
   End Function
Cela me renvoi 0 dans la cellule.


@st007 --> Cela ne correspond pas a la donnée que je recherche. Merci quand même de ton aide.

@Phil69970 --> Idem , je souhaite récupéré seulement le nom de dossier. Merci quand même 🙂
 
Re

Et que le nom du fichier
VB:
Sub Nom_Fichier()

    MsgBox ThisWorkbook.Name, vbInformation, "Nom du fichier"

'    MsgBox ActiveWorkbook.Path, vbInformation, "Chemin du fichier"
'    MsgBox ActiveWorkbook.FullName, vbInformation, "Nom et chemin du fichier"

End Sub

@Phil69970

Et que le nom du dossier ? Ou trouver une formule type =Droite mais mon nombre de caractère dans le nom du fichier varie. Si je trouve une solution je vous la partagerai aussi.
 
Bonjour,

C'est quoi la question précisément ?
Je souhaiterais récupérer dans une cellule le nom du dossier ou est stocké mon classeur.
En VBA ou en formule ?

C://User/xxx/Dossier1/Sous-Dossier1/Fichier.xlsx --> Sous-Dossier1
C://User/xxx/Dossier1/Sous-Dossier2/Sous-sous-Dossier21/Fichier.xlsx --> Sous-sous-Dossier21
C'est quoi le dossier pour toi ?
- User ?
- xxx ?
- Dossier1 ?

Pour info le dossier c'est User, tous les autres sont des sous-dossiers.
 
Le dernier sous-dossier, en VBA sur la base du code de @Dranreb:
VB:
Option Explicit

Sub a()
    MsgBox Dossier
End Sub

Function Dossier() As String
   Dim TSpl() As String
   TSpl = Split(ThisWorkbook.Path, "\")
   Dossier = TSpl(UBound(TSpl))
End Function
Sous réserve que le fichier ne soit pas directement sous une lettre de lecteur qui serait alors récupérée en tant que Dossier.
 
Le dernier sous-dossier, en VBA sur la base du code de @Dranreb:
VB:
Option Explicit

Sub a()
    MsgBox Dossier
End Sub

Function Dossier() As String
   Dim TSpl() As String
   TSpl = Split(ThisWorkbook.Path, "\")
   Dossier = TSpl(UBound(TSpl))
End Function
Sous réserve que le fichier ne soit pas directement sous une lettre de lecteur qui serait alors récupérée en tant que Dossier.

Cela fonctionne lorsque le fichier est sur un disque réseau. Et ne marche plus lorsqu'on le bascule sur le cloud, cela me renvoi l'adresse complète du fichier.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour