ThisWorkbook.Path: modification du chemin

SaraBilmem

XLDnaute Nouveau
Bonjour à toutes et à tous,

J'ai besoin de récupérer le chemin d'un fichier qui n'a pas exactement le même chemin que le fichier depuis lequel je lance ma macro. Je m'explique, j'ai:

- Un dossier A-> contenant un fichier A et un dossier B
- Le dossier B-> contient un fichier B

Depuis mon fichier B, j'aimerai pouvoir avoir le chemin du fichier A.

Le problème est que si j'utilise cette méthode, je "rentre" dans le dossier B.

En bref..peut-on enlever des caractères à "ThisWorkbook.Path", en l'occurence ici je devrais enlever "\dossier B".

Merci d'avance pour votre aide.

SaraBilmem
 

Staple1600

XLDnaute Barbatruc
Re : ThisWorkbook.Path: modification du chemin

Bonsoir à tous [EDITION=Salut Job75[/EDITION]

Oui on peut.
avec Split par exemple

Mais tu trouveras des exemples plus détaillés dans les archives du forum.
(clique sur la loupe en haut à droite de l'écran pour les trouver)

EDITION: Allez je vais t'épargner un clic
Code:
Sub a_commejemennuyaisjemacrote()
MsgBox ThisWorkbook.Name
MsgBox ThisWorkbook.FullName
MsgBox Split(ThisWorkbook.FullName, "\")(UBound(Split(ThisWorkbook.FullName, "\")))
End Sub
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : ThisWorkbook.Path: modification du chemin

Bonjour SaraBilmem, salut Jean-Marie :)

Essayez :

Code:
Sub Chemin()
Dim s, t$
s = Split(ThisWorkbook.Path, "\")
s(UBound(s)) = ""
t = Join(s, "\")
t = Left(t, Len(t) - 1) 'facultatif, pour enlever le \ à la fin
MsgBox t
End Sub
A+
 

job75

XLDnaute Barbatruc
Re : ThisWorkbook.Path: modification du chemin

Re,

Avec un seul dossier à sauter, InStrRev est plus simple :

Code:
Sub Test()
Dim t$
'-1 pour enlever le dernier \
t = Left(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "\") - 1)
MsgBox t
End Sub
A+
 

SaraBilmem

XLDnaute Nouveau
Re : ThisWorkbook.Path: modification du chemin

Bonjour,

Un grand merci à tous pour vos réponses. J'avais besoin du chemin pour aller jusqu'au fichierA depuis le fichierB.

DossierA -> fichierA
-> DossierB-> fichierB

Au final, j'obtiens grâce à votre aide:

Code:
Sub Test()
Dim t$
'-1 pour enlever le dernier \
t = Left(ThisWorkbook.Path, InStrRev(ThisWorkbook.Path, "\dossierB") - 1) & "\fichierA.xls"
MsgBox t
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
311 724
Messages
2 081 937
Membres
101 844
dernier inscrit
pktla