Couper une chaine de caractère path [VBA]

Bonjour à tous,

Je voudrais chercher mes fichiers dans d'autre dossiers dans lequel je suis. Je pensais donc couper la variable juste après le dernier "\" mais sachant qu'il y en a plusieurs autre avant je ne sais pas comment faire

Quelqu'un aurait-il une idée ?

Merci beaucoup

Bonjour,

Je ne sais pas si tu cherches une solution VBA ou formule.

En formule :

ton chemin en A1

en B1 (ou ailleurs), cette formule :

=STXT(A1;TROUVE("µ";SUBSTITUE(A1;"\";"µ";NBCAR(A1)-NBCAR(SUBSTITUE(A1;"\";""))))+1;99)

qui donne ce qui suit le dernier \

@+

Ah pardon pardon pardon j'ai oublié de préciser, c'est VBA, quelle cruche, j'suis désolée

Bonjour,

une petite fonction pour garder le répertoire d'un nom complet de fichier

For i = Len(NomFichier) To 1 Step -1
        If Mid(NomFichier, i, 1) = "\" Then
            NomRep = Left(NomFichier, i)
            GoTo fin
        End If
    Next i
fin:
    MsgBox NomRep

Bonsoir,

Math, ce qui correspond à :

nomrep = ActiveWorkbook.Path & "\"

Bonne soirée

ouais j'avais pensé à ca, mais je me disais que ces noms de fichiers était peut-être écris dans des cellules ou stocker dans une variable. C'est de cette façon que j'ai compris le problème.

Éclaire nous Trinou

Je récupère les fichiers de la même façon que cousinhub, avec l'attribut Path du classeur.

Du coup, je vais récupérer :

nomrep = monChemin/dossier1/dossier2/

et je voudrais qu'il devienne

monChemin/dossier1/

J'espère vous avoir aider un peu

Bonjour bon matin,

la fonction que je t'ai donné devrais fonctionné, si tu veux toujours récupérer le repertoire un niveau au dessus du répertoire courant. Si tu veux choisir le nombre de niveau à remonter, essaie ceci

Public Function RemonterNiveau(NomRep As String, NbNiveau As Integer) As String
    Dim i As Integer
    Dim NbExec As Integer

    For i = Len(NomRep) - 1 To 1 Step -1
        If Mid(NomRep, i, 1) = "\" Then
            NbExec = NbExec + 1
            If NbExec = NbNiveau Then RemonterNiveau = Left(NomRep, i)
        End If
    Next i
End Function

et tu appelle de cette facon:

Resultat = RemonterNiveau(ActiveWorkbook.Path, 1)

le 1 représente le nombre de niveau à remonter

Merci beaucoup c'est parfait !

Bonjour,

Voici une autre solution :

Public Sub AfficherRepertoireParent()
    Dim strRep As String

    If ThisWorkbook.Path = "" Then Exit Sub

    strRep = ThisWorkbook.Path

    ChDir (strRep)
    ChDir ".."

    MsgBox CurDir
End Sub
Rechercher des sujets similaires à "couper chaine caractere path vba"