emplacement relatif

Le
f4crw
Bonsoir,
chemin = ActiveWorkbook.Path me donne l'emplacement où se trouve mon
classeur et je voudrai le sauvegarder dans le dossier qui se trouve 2
niveaux plus hauts dans l'arborescence sans connaitre le lecteur de départ.
Ex.: Disque?: ouveau dossier dossier 1dossier 2 mon fichier
fichier à sauvegarder dans dossier 1 qui peut avoir un autre nom

comment récupéré chemin de ce dossier
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #21383671
Bonsoir.

ChDir ActiveWorkbook.Path
ChDir "...."

Utilise aussi ChDrive si tu changes de disque.
Cordialement.
Daniel

Bonsoir,
chemin = ActiveWorkbook.Path me donne l'emplacement où se trouve mon classeur
et je voudrai le sauvegarder dans le dossier qui se trouve 2 niveaux plus
hauts dans l'arborescence sans connaitre le lecteur de départ.
Ex.: Disque?: nouveau dossier dossier 1dossier 2 mon fichier
fichier à sauvegarder dans dossier 1 qui peut avoir un autre nom

comment récupéré chemin de ce dossier
f4crw
Le #21384121
Bonsoir ou bonjour ?

Désolé ça ne marche pas ou bien je n'ai pas compris.
J'utilise déjà ChDir et ChDrive dans d'autres modules, mais avec un chemin
absolu pas avec "....".
Il y a peut-être une syntaxe que je ne saisis pas.
à bientôt
F4CRW

"Daniel.C" a écrit dans le message de news:
Bonsoir.

ChDir ActiveWorkbook.Path
ChDir "...."

Utilise aussi ChDrive si tu changes de disque.
Cordialement.
Daniel

Bonsoir,
chemin = ActiveWorkbook.Path me donne l'emplacement où se trouve mon
classeur et je voudrai le sauvegarder dans le dossier qui se trouve 2
niveaux plus hauts dans l'arborescence sans connaitre le lecteur de
départ.
Ex.: Disque?: nouveau dossier dossier 1dossier 2 mon fichier
fichier à sauvegarder dans dossier 1 qui peut avoir un autre nom

comment récupéré le chemin de ce dossier




pirot
Le #21384511
bonjour,
ben ... la syntaxe de daniel.C est bonne
tu n'as qu'à essayer:
chemin = ActiveWorkbook.Path
ChDir "../.."
a = CurDir
et regarde le contenu de a, c'est bien le dosssier 2 au dessus de
"chemin"
pour être sûr que 2 chemins au dessus existent, il faudrait par
exemple compter les de chemin :
a = 0
For i = 1 To Len(chemin)
If Mid(chemin, i, 1) = "" Then a = a + 1
Next i
If a >= 2 Then ChDir "...." Else 'erreur ???? bigre, que faire ???
----------------------------------------------------------------------
@+
pirot
michdenis
Le #21385821
Bonjour,

Dans un module standard, copie ce qui suit.
Comme je ne suis pas en réseau, je ne peux pas
tester ça.

'Déclaration API dans le haut du module
Private Declare Function SetCurrentDirectoryA Lib _
"kernel32" (ByVal lpPathName As String) As Long
'-------------------------------
Sub ChDirNet(szPath As String)
'collectif, d'après Laurent Longre, mpep
Dim lReturn As Long
lReturn = SetCurrentDirectoryA(szPath)
If lReturn = 0 Then Err.Raise vbObjectError + 1, "Error setting path."
End Sub
'-------------------------------

'--------------------------------------
Sub Sauvegarde()
Dim Chemin As String
Dim GestionErreur
Chemin = "\Lecteurnouveau dossier dossier 1"
On Error GoTo GestionErreur
ChDirNet Chemin
ThisWorkbook.SaveAs Chemin & ThisWorkbook.Name
Exit Sub
GestionErreur:
MsgBox "Problème avec le chemin"
End Sub
'--------------------------------------




"f4crw" #
Bonsoir,
chemin = ActiveWorkbook.Path me donne l'emplacement où se trouve mon
classeur et je voudrai le sauvegarder dans le dossier qui se trouve 2
niveaux plus hauts dans l'arborescence sans connaitre le lecteur de départ.
Ex.: Disque?: nouveau dossier dossier 1dossier 2 mon fichier
fichier à sauvegarder dans dossier 1 qui peut avoir un autre nom

comment récupéré chemin de ce dossier
f4crw
Le #21389161
Bonsoir
apprès essai de :
chemin = ActiveWorkbook.Path
ChDir "../.."
a = CurDir


chemin = ActiveWorkbook.Path ' qui est C:Documents and
SettingsRégis.XXXMes documentsTempMonFichier.xls

ChDir "...."

a = CurDir ' me donne a = "E:"
Si je sauvegarde le fichier est dans le disque E:
Je dois vous que le dossier de travail par défaut d'Office est E:Mes
documents



"pirot"
bonjour,
ben ... la syntaxe de daniel.C est bonne
tu n'as qu'à essayer:
chemin = ActiveWorkbook.Path
ChDir "../.."
a = CurDir
et regarde le contenu de a, c'est bien le dosssier 2 au dessus de
"chemin"
pour être sûr que 2 chemins au dessus existent, il faudrait par
exemple compter les de chemin :
a = 0
For i = 1 To Len(chemin)
If Mid(chemin, i, 1) = "" Then a = a + 1
Next i
If a >= 2 Then ChDir "...." Else 'erreur ???? bigre, que faire ???
----------------------------------------------------------------------
@+
pirot
Daniel.C
Le #21389151
Utilise :

MsgBox CurDir
MsgBox ActiveWorkbook.Path
ChDrive Left(ActiveWorkbook.Path, 1)
ChDir "...."
MsgBox CurDir

Daniel

Bonsoir
apprès essai de :
chemin = ActiveWorkbook.Path
ChDir "../.."
a = CurDir


chemin = ActiveWorkbook.Path ' qui est C:Documents and
SettingsRégis.XXXMes documentsTempMonFichier.xls

ChDir "...."

a = CurDir ' me donne a = "E:"
Si je sauvegarde le fichier est dans le disque E:
Je dois vous que le dossier de travail par défaut d'Office est E:Mes
documents



"pirot"
bonjour,
ben ... la syntaxe de daniel.C est bonne
tu n'as qu'à essayer:
chemin = ActiveWorkbook.Path
ChDir "../.."
a = CurDir
et regarde le contenu de a, c'est bien le dosssier 2 au dessus de
"chemin"
pour être sûr que 2 chemins au dessus existent, il faudrait par
exemple compter les de chemin :
a = 0
For i = 1 To Len(chemin)
If Mid(chemin, i, 1) = "" Then a = a + 1
Next i
If a >= 2 Then ChDir "...." Else 'erreur ???? bigre, que faire ???
----------------------------------------------------------------------
@+
pirot
Daniel.C
Le #21389271
PLus exactement :

MsgBox CurDir
MsgBox ActiveWorkbook.Path
ChDrive Left(ActiveWorkbook.Path, 1)
ChDir ActiveWorkbook.Path
ChDir "...."
MsgBox CurDir

Daniel

Utilise :

MsgBox CurDir
MsgBox ActiveWorkbook.Path
ChDrive Left(ActiveWorkbook.Path, 1)
ChDir "...."
MsgBox CurDir

Daniel

Bonsoir
apprès essai de :
chemin = ActiveWorkbook.Path
ChDir "../.."
a = CurDir


chemin = ActiveWorkbook.Path ' qui est C:Documents and
SettingsRégis.XXXMes documentsTempMonFichier.xls

ChDir "...."

a = CurDir ' me donne a = "E:"
Si je sauvegarde le fichier est dans le disque E:
Je dois vous que le dossier de travail par défaut d'Office est E:Mes
documents



"pirot"
bonjour,
ben ... la syntaxe de daniel.C est bonne
tu n'as qu'à essayer:
chemin = ActiveWorkbook.Path
ChDir "../.."
a = CurDir
et regarde le contenu de a, c'est bien le dosssier 2 au dessus de
"chemin"
pour être sûr que 2 chemins au dessus existent, il faudrait par
exemple compter les de chemin :
a = 0
For i = 1 To Len(chemin)
If Mid(chemin, i, 1) = "" Then a = a + 1
Next i
If a >= 2 Then ChDir "...." Else 'erreur ???? bigre, que faire ???
----------------------------------------------------------------------
@+
pirot
f4crw
Le #21389551
Bonsoir Daniel,
ChDir ActiveWorkbook.Path
ChDir "...."
fait bien ce que je veux merci.

Mais peux-tu m'expliquer : "Left(ActiveWorkbook.Path, 1)" et l'argument 1


"Daniel.C"
PLus exactement :

MsgBox CurDir
MsgBox ActiveWorkbook.Path
ChDrive Left(ActiveWorkbook.Path, 1)
ChDir ActiveWorkbook.Path
ChDir "...."
MsgBox CurDir

Daniel

Utilise :

MsgBox CurDir
MsgBox ActiveWorkbook.Path
ChDrive Left(ActiveWorkbook.Path, 1)
ChDir "...."
MsgBox CurDir

Daniel

Bonsoir
apprès essai de :
chemin = ActiveWorkbook.Path
ChDir "../.."
a = CurDir


chemin = ActiveWorkbook.Path ' qui est C:Documents and
SettingsRégis.XXXMes documentsTempMonFichier.xls

ChDir "...."

a = CurDir ' me donne a = "E:"
Si je sauvegarde le fichier est dans le disque E:
Je dois vous que le dossier de travail par défaut d'Office est E:Mes
documents



"pirot"
bonjour,
ben ... la syntaxe de daniel.C est bonne
tu n'as qu'à essayer:
chemin = ActiveWorkbook.Path
ChDir "../.."
a = CurDir
et regarde le contenu de a, c'est bien le dosssier 2 au dessus de
"chemin"
pour être sûr que 2 chemins au dessus existent, il faudrait par
exemple compter les de chemin :
a = 0
For i = 1 To Len(chemin)
If Mid(chemin, i, 1) = "" Then a = a + 1
Next i
If a >= 2 Then ChDir "...." Else 'erreur ???? bigre, que faire ???
----------------------------------------------------------------------
@+
pirot






Daniel.C
Le #21389671
ChDir ne fonctionne que si le lecteur est le même que celui du chemin
en cours.
Si le chemin en cours est :
c:temp
chdir e:donneesdanielmpfe
ne fonctionnera pas.
Il faut d'abord changer de lecteur (ChDrive) pour que celui-ci soit le
même que celui du chemin du classeur. Si le chemin du classeur est :
e:donneesdanielmpfe
il faut commencer par écrire :
ChDrive "e"
C'est la lettre du lecteur que l'on récupère par
Left(ActiveWorkbook.Path, 1)
(premier caractère du chemin, soit "e")
Daniel

Bonsoir Daniel,
ChDir ActiveWorkbook.Path
ChDir "...."
fait bien ce que je veux merci.

Mais peux-tu m'expliquer : "Left(ActiveWorkbook.Path, 1)" et l'argument 1


"Daniel.C"
PLus exactement :

MsgBox CurDir
MsgBox ActiveWorkbook.Path
ChDrive Left(ActiveWorkbook.Path, 1)
ChDir ActiveWorkbook.Path
ChDir "...."
MsgBox CurDir

Daniel

Utilise :

MsgBox CurDir
MsgBox ActiveWorkbook.Path
ChDrive Left(ActiveWorkbook.Path, 1)
ChDir "...."
MsgBox CurDir

Daniel

Bonsoir
apprès essai de :
chemin = ActiveWorkbook.Path
ChDir "../.."
a = CurDir


chemin = ActiveWorkbook.Path ' qui est C:Documents and
SettingsRégis.XXXMes documentsTempMonFichier.xls

ChDir "...."

a = CurDir ' me donne a = "E:"
Si je sauvegarde le fichier est dans le disque E:
Je dois vous que le dossier de travail par défaut d'Office est E:Mes
documents



"pirot"
bonjour,
ben ... la syntaxe de daniel.C est bonne
tu n'as qu'à essayer:
chemin = ActiveWorkbook.Path
ChDir "../.."
a = CurDir
et regarde le contenu de a, c'est bien le dosssier 2 au dessus de
"chemin"
pour être sûr que 2 chemins au dessus existent, il faudrait par
exemple compter les de chemin :
a = 0
For i = 1 To Len(chemin)
If Mid(chemin, i, 1) = "" Then a = a + 1
Next i
If a >= 2 Then ChDir "...." Else 'erreur ???? bigre, que faire ???
----------------------------------------------------------------------
@+
pirot






f4crw
Le #21390201
Bonjour,
OK merci beaucoup à tous pour vos réponses et bonne journée.
F4CRW


"Daniel.C"
ChDir ne fonctionne que si le lecteur est le même que celui du chemin en
cours.
Si le chemin en cours est :
c:temp
chdir e:donneesdanielmpfe
ne fonctionnera pas.
Il faut d'abord changer de lecteur (ChDrive) pour que celui-ci soit le
même que celui du chemin du classeur. Si le chemin du classeur est :
e:donneesdanielmpfe
il faut commencer par écrire :
ChDrive "e"
C'est la lettre du lecteur que l'on récupère par
Left(ActiveWorkbook.Path, 1)
(premier caractère du chemin, soit "e")
Daniel

Bonsoir Daniel,
ChDir ActiveWorkbook.Path
ChDir "...."
fait bien ce que je veux merci.

Mais peux-tu m'expliquer : "Left(ActiveWorkbook.Path, 1)" et l'argument 1


"Daniel.C"
PLus exactement :

MsgBox CurDir
MsgBox ActiveWorkbook.Path
ChDrive Left(ActiveWorkbook.Path, 1)
ChDir ActiveWorkbook.Path
ChDir "...."
MsgBox CurDir

Daniel

Utilise :

MsgBox CurDir
MsgBox ActiveWorkbook.Path
ChDrive Left(ActiveWorkbook.Path, 1)
ChDir "...."
MsgBox CurDir

Daniel

Bonsoir
apprès essai de :
chemin = ActiveWorkbook.Path
ChDir "../.."
a = CurDir


chemin = ActiveWorkbook.Path ' qui est C:Documents and
SettingsRégis.XXXMes documentsTempMonFichier.xls

ChDir "...."

a = CurDir ' me donne a = "E:"
Si je sauvegarde le fichier est dans le disque E:
Je dois vous que le dossier de travail par défaut d'Office est E:Mes
documents



"pirot"
bonjour,
ben ... la syntaxe de daniel.C est bonne
tu n'as qu'à essayer:
chemin = ActiveWorkbook.Path
ChDir "../.."
a = CurDir
et regarde le contenu de a, c'est bien le dosssier 2 au dessus de
"chemin"
pour être sûr que 2 chemins au dessus existent, il faudrait par
exemple compter les de chemin :
a = 0
For i = 1 To Len(chemin)
If Mid(chemin, i, 1) = "" Then a = a + 1
Next i
If a >= 2 Then ChDir "...." Else 'erreur ???? bigre, que faire ???
----------------------------------------------------------------------
@+
pirot












Publicité
Poster une réponse
Anonyme