Comment remonter dans un répertoire ?

Pierre31

XLDnaute Junior
Bonjour à toutes et tous,

J'ai plusieurs fichiers dont je transfère automatiquement par macro VBA des données de l'un à l'autre.
Le chemin de Fichier1 est "E:\DPR\MGR\GMAO\Stat\Fichier1"
Le chemin de Fichier2 est "E:\DPR\MGR\GMAO\Planning\Recap\Fichier2"
J'ai mis dans les macros VBA les 2 chemins pour récupérer les données.
Ceci est un exemple pour comprendre mon problème car en réalité j'ai des dizaines de fichiers qui fonctionnent sur le même principe.
Aujourd'hui, pour des raisons d'organisation je dois mettre l'ensemble de mes fichiers dans
"D:\PROD\MCO\LOM\GMAO\Stat\Fichier1" et
"D:\PROD\MCO\LOM\GMAO\Planning\Recap\Fichier2"

Je dois reprendre l'ensemble des macros pour saisir les nouveaux chemins mais cette opération pourrait bien se représenter en cas de nouvelle organisation, donc voici ma question:

Comment je peux écrire les chemins de façon a ne plus devoir les changer sachant que

GMAO\Stat\Fichier1 Restera invariable et
GMAO\Planning\Recap\Fichier2 Restera invariable

En fait toute mon application est dans le sous répertoire "GMAO"

Si il y a une solution cela me permettra de fonctionner quel que soit le les répertoires et sous répertoires en amont.

Merci d'avance pour vos réponses.
Cordialement
Pierre
 

JNP

XLDnaute Barbatruc
Re : Comment remonter dans un répertoire ?

Bonjour Pierre31 :),
Pas totalement claire ton histoire :rolleyes:...
Teste
Code:
Sub test()
Dim Chemin As String, Tableau, I As Integer
Tableau = Split("E:\DPR\MGR\GMAO\Stat\Fichier1", "\")
For I = LBound(Tableau) To UBound(Tableau) - 2
Chemin = Chemin & Tableau(I) & "\"
Next I
MsgBox Chemin
End Sub
sachant que tu peux obtenir le chemin du fichier avec
Code:
ThisWorkbook.Path
j'espère que ça répondra à ta question :rolleyes:.
Bonne journée :cool:
 

Pierre31

XLDnaute Junior
Bonjour JNP,

D'abord merci pour ta suggestion et excuse moi de répondre tardivement.
En fait j'ai une application composée de plusieurs répertoires et sous-répertoires dans lesquels il y a X fichiers Excel et des ".txt" .
Dans la pratique je copie des données de feuilles Excel dans des fichiers textes et vice versa en passant par des macros dans lesquelles je donne le chemin pour copier ou écrire les données.
Actuellement mont application est contenue dans le répertoire "TestRep1" et sous le sous-répertoire "LOM"
Ce répertoire est sur un serveur avec l'arborescence suivante
E:\DPR\MGR\LOM\
Par la suite je vais devoir mettre mon application "TestRep1" dans:
E:\PROD\APPLI\
Il est évident que dans mes macro je vais devoir modifier les chemins pour pouvoir copier ou coller des données dans mes fichiers texte.
Donc l'idée est de trouver la solution qui permette quel que soit l'endroit ( Répertoire - Sous-répertoire) que mon application "TestRep1" fonctionne sans modifier les chemins dans mes macros.

J'ai donc pensé à la macro "pas très jolie" suivante (exemple) qui me permet de fonctionner quel que soit le répertoire ou le sous-répertoire dans lequel je met mon application.

Sub Recherche-chemin
Dim Chemin, chemin2 As String, Tableau, I, Delta As Integer
Chemin = ThisWorkbook.Path
chemin2 = "\TestRep1" ' Chemin ou se trouve le fichier dans l'application
Lchemin = Len(Chemin)
Lchemin2 = Len(chemin2)
Delta = Lchemin - Lchemin2
MasterChemin = Mid(Chemin, 1, Delta) 'Chemin dans lequel se trouve l'application
NewChemin = MasterChemin & " \TestRep1" & "\" & "TestRep1-333" & "\" & "TestRep-1-333-444" & "\" ' Chemin ou l'on va chercher de nouvelles informations

MsgBox ("Chemin de l'application = ") & MasterChemin

MsgBox ("Chemin des nouvelles données = ") & NewChemin
End Sub

Je l'ai essayée et elle fonctionne dans tous les cas.

Cordialement
Pierre
 

Discussions similaires

Statistiques des forums

Discussions
312 416
Messages
2 088 247
Membres
103 784
dernier inscrit
Métro-logue