Récupérer le chemin d'acces d'un dossier

L

Ludovic

Guest
Bonjour tout le monde,

Comment récupérer le chemin d'accès à un dossier et pas d'un fichier (pas de getopenfilename).

Mercide votre réponse.

Ludovic
 
M

michel

Guest
bonjour Ludovic , bonjour F.Launay


tu peux tester cette methode ( BrowseForFolder ) pour choisir un dossier et ensuite afficher le chemin


Sub afficherCheminDosier_BrowseForFolder()
Dim objShell As Object, objFolder As Object
Dim SecuriteSlash As Integer
Dim Chemin As String

Set objShell = CreateObject("Shell.Application") 'recuperer nom repertoire cible
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
On Error Resume Next

Chemin = objFolder.ParentFolder.ParseName(objFolder.Title).Path
If objFolder.Title = "" Then Chemin = ""
SecuriteSlash = InStr(objFolder.Title, ":")
If SecuriteSlash > 0 Then Chemin = Mid(objFolder.Title, SecuriteSlash - 1, 2) & ""

MsgBox Chemin
End Sub


bonne journée
MichelXld
 
L

Ludovic

Guest
Bonjour Michel, Bonjour f.launay, Rebonjour à toutes et à tous,

Merci pour vos réponses mais en fait , je connais le nom de mon dossier (mon_dossier), je veux juste mettre le chemin dans une variable (le_chemin) pour y accéder.

Merci pour votre aide, je débute...

Bon Dimanche.

Ludovic
 
L

Ludovic

Guest
Re ... Michel,

Ce doit etre très simple, mais quand on débute, rien ne l'est.

- J'ai donc un dossier (mon_dossier)
- Je ne sais pas où il se trouve (C:\D1\...\Dx\mon_dossier)
- Je veux juste céer une variable mon_chemin = "C:\D1\...\Dx\mon_dossier"

J'espere avoir été plus explicite.

Merci pour ton interet.

Ludovic
 
M

michel

Guest
rebonjour Ludovic

cet exemple permet de rechercher un dossier (nommé "wiki pages" dans l'exemple ) et d'afficher le chemin complet trouvé
necessite d'activer la reference Microsoft Scripting RunTime
dans Visual Basic Editor (Alt + F11)
menu Outils
References
Coches la ligne "Microsoft Scripting RunTime"
cliques sur OK pour valider

inutile de dire que la recherche peut etre longue s'il y a beaucoup de dossiers sur le disque
la macro ne prend pas en compte le fait qu'il puisse y avoir plusieurs dossiers portant le meme nom


Option Compare Text
Sub TestPresenceDossier()
'texté avec WinXP et Excel2002
Dim Racine As String

Racine = "C:\"
ListFilesInFolder Racine, True
End Sub

Sub ListFilesInFolder(SourceFolderName As String, IncludeSubfolders As Boolean)
' adapté de Ole P Erlandsen
'necessite d'activer la reference Microsoft Scripting RunTime
Dim Fso As Scripting.FileSystemObject
Dim SourceFolder As Scripting.Folder, SubFolder As Scripting.Folder

On Error GoTo Fin

Set Fso = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = Fso.GetFolder(SourceFolderName)

If IncludeSubfolders Then
For Each SubFolder In SourceFolder.subfolders

If SubFolder.Name = "wiki pages" Then 'adapter le nom du dossier recherché
MsgBox SubFolder.Path
IncludeSubfolders = False
End If

ListFilesInFolder SubFolder.Path, IncludeSubfolders
Next SubFolder
End If

Fin:
End Sub


bon apres midi
MichelXld
 
L

Ludovic

Guest
Rebonjour Michel,

la ligne

ListFilesInFolder SubFolder.Path, IncludeSubfolders

est pour afficher le chemin à l'écran ? à quoi sert 'IncludeSubfolders'

le chemin complet est dans SubFolder.Path, si j'ai bien compris.

Merci pour ta solution.

Ludovic
 
M

michel

Guest
rebonjour Ludovic

le chemin complet est bien dans SubFolder.Path


ListFilesInFolder est une procedure de Ole P Erlandsen qui permet d'effectuer la recherche dans tous les sous répertoires d'un dossier

SubFolder.Path correspond au chemin des dossiers parcourus ( c'est l'information que tu recherches )

IncludeSubfolders est une variable boolean (True/False) qui permet de définir si l'on souhaite parcourir les sous dossiers .
Dans l'exemple , lorqu'un dossier nommé "wiki pages" est trouvé , la variable IncludeSubfolders est passée à False pour arreter la recherche

la ligne ListFilesInFolder SubFolder.Path, IncludeSubfolders permet donc de parcourir tous les répertoires et sous répertoires tant que la recherche est infructueuse


ps
est ce que la macro repond à ta demande ?


bon apres midi
MichelXld
 

Discussions similaires

Réponses
10
Affichages
242

Statistiques des forums

Discussions
312 191
Messages
2 086 052
Membres
103 109
dernier inscrit
boso_vs_viking