ObjShell.BrowseForFolder + ActiveWorkbook.Path

Bonjour,

voici un code qui permet de sélectionner un dossier, et donc de récupérer un chemin complet.

J'aimerai la modifier pour que lorsqu'il m'affiche la fenêtre, j'ai directement le dossier où je trouve le fichier qui lance la macro ( avec ActiveWorkbook.Path?)

je vous remercie par avance

Sub LoadPath_fr()
Dim ObjShell As Object
Dim ObjFolder As Object
Dim chemin As String

On Error GoTo ErrorHandler

Set ObjShell = CreateObject("Shell.Application")
Set ObjFolder = ObjShell.BrowseForFolder(&H0&, " ", &H201&)

If Not ObjFolder Is Nothing Then
   chemin = ObjFolder.Items.Item.Path
   If Right(chemin, 1) <> "\" Then chemin = chemin & "\"

config.Range("C16") = chemin

   Else: Exit Sub
End If
Set ObjShell = Nothing: Set ObjFolder = Nothing

Exit Sub

ErrorHandler:
MsgBox Err.Number & vbLf & Err.Description
End Sub

Bonsoir

Modifies ta macro (partie surlignée)

On Error GoTo ErrorHandler
Set ObjShell = CreateObject("Shell.Application")
Set ObjFolder = ObjShell.BrowseForFolder(&H0&, " ", &H201&, ThisWorkbook.Path)

If Not ObjFolder Is Nothing Then

merci,

c'est codé, c'est réglé

En fait ça soulève une autre problématique.

Si l'utilisateur veut revenir au dossier de la racine du disque dur!

Et ce que je peux ajouter un bouton 'parent' sur fenêtre?

Merci

Bonjour

Ne connaissant pas tout je ne sais pas (je ne crois pas non plus) qu'il soit possible de rajouter un bouton.

Essayes cette méthode

Sub Choix_Repertoire()
Dim FdFolder As FileDialog
Dim Rep

  Set FdFolder = Application.FileDialog(msoFileDialogFolderPicker)
    With FdFolder
      .InitialFileName = ThisWorkbook.Path
      If .Show = -1 Then    ' Clic sur Ok
        For Each Rep In .SelectedItems
          MsgBox "The path is: " & Rep
        Next Rep
      Else
        ' Clic sur Annuler
      End If
    End With
End Sub

merci bien, je me disais bien que je devais changer cette vieille macro!!!

Rechercher des sujets similaires à "objshell browseforfolder activeworkbook path"