Récupérer une partie "d'adresse" depuis une fonction =GAUCHE(CELLULE("nomfichier")...

tchangy71

XLDnaute Occasionnel
Bonjour,

Voila je cherche à ouvrir un classeur (B) par macro depuis un autre classeur (A).
Ces derniers peuvent être situés n'importe ou sur le disque dur du PC.

Mais, toujours dans un même dossier...

Je m'explique :
On a un dossier nommé CLIENT (qui se trouve donc n'importe ou sur C:)
Dans ce dossier j'ai :
- un autre dossier appelé A_Synthèse_CLIENT qui contient mon classeur A.
- mon classeur B
- et d'autre dossier comprenant des semblables de B que je devrais aussi ouvrir.

Grâce à la fonction ci dessous j'obtiens l'adresse de mon classeur A dans la cellule A1
Fonction : =GAUCHE(CELLULE("nomfichier");TROUVE("[";CELLULE("nomfichier"))-1)
Résultat : C:\DEV_EXCEL\CLIENT\A_Synthèse_CLIENT\

Voila, pour ouvrir mon classeur B il me faut la valeur de la cellule A1 mais "diminué de "A_Synthèse_CLIENT\"
car j'utilise un code du type :
Workbooks.Open Filename:= .Range("A1") & ...

Donc ma question est : comment je peux faire cela ? récupérer la valeur d'une cellule en supprimant la valeur contenue entre les deux derniers "\" et bien sur le dernier "\" ?

Merci d'avance

Cordialement,
Philippe
 

hoerwind

XLDnaute Barbatruc
Re : Récupérer une partie "d'adresse" depuis une fonction =GAUCHE(CELLULE("nomfichier

Bonjour,

Si je comprends, tu souhaites que la formule renvoie : C:\DEV_EXCEL\CLIENT\

Une petite question afin de ne pas compliquer inutilement la formule : as-tu toujours trois \ dans le chemin ?
 

unrender

XLDnaute Junior
Re : Récupérer une partie "d'adresse" depuis une fonction =GAUCHE(CELLULE("nomfichier

Bonjour :

Code:
fin = "A_Synthèse_CLIENT"
[a2] = Mid([a1], 1, InStr(1, [a1], fin) - 1)

La valeur cherchée sera mise dans la cellule A2.
Tu peux remplacer [a2] par une variable...
 

tchangy71

XLDnaute Occasionnel
Re : Récupérer une partie "d'adresse" depuis une fonction =GAUCHE(CELLULE("nomfichier

Bonjour,

Je suis vraiment désolé de ne répondre que maintenant mais j'ai du laisser les macros VBA de coté pour un petit temps...

Justement non il n'y as pas forcement que trois \ dans le chemin, mais bien sur nous pouvons nous organiser afin qu'il n'y en ait que trois.
Pour info lorsque j'ai mis C:\DEV_EXCEL\CLIENT (client est en faite une variable qui va donc porter le nom du client !!, ce qui pose problème avec la formule de unrender).
 

hoerwind

XLDnaute Barbatruc
Re : Récupérer une partie "d'adresse" depuis une fonction =GAUCHE(CELLULE("nomfichier

Bonjour,

Sans grande garantie !

En supposant que tu veux couper après le troisième \ :
Code:
=GAUCHE(CELLULE("nomfichier");CHERCHE("µ";SUBSTITUE(CELLULE("nomfichier");"\";"µ";3)))
Si ce n'est pas le troisième, modifie en conséquence le 3 en fin de formule.
Pour rappel (si nécessaire), cela ne fonctionne que pour un fichier enregsitré.
 

Discussions similaires

Réponses
7
Affichages
465

Statistiques des forums

Discussions
312 097
Messages
2 085 260
Membres
102 844
dernier inscrit
atori2