Entrer le chemin d'un dossier dans une cellule

  • Initiateur de la discussion Initiateur de la discussion HachemCress
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

H

HachemCress

Guest
Bonjour,

La méthode GetOpenFilename permet d'entrer un ou plusieurs noms de fichier dans une variable et il est donc facile de mettre ces noms dans des cellules.

Par contre, je n'ai jamais trouvé de méthode prévue pour en faire de même, pour un dossier. J'ai donc utilisé GetSaveAsFilename pour créer un fichier fantôme et en extraire le chemin (GetParentFolderName). Ca marche (même pour créer un dossier inexistant) , mais c'est déroutant.

Quelqu'un aurait une autre solution?😕
 

Pièces jointes

Re : Entrer le chemin d'un dossier dans une cellule

Bonjour,

pas ouvert ton fichier, mais regarde ci ceci peut répondre à ta question :
Code:
Dim chemin As String
With Application.FileDialog(msoFileDialogFolderPicker)
    '.InitialFileName = ActiveWorkbook.Path & "\"
    .Show
    If .SelectedItems.Count > 0 Then chemin = .SelectedItems(1)
End With

bon après midi
@+
 
Re : Entrer le chemin d'un dossier dans une cellule

Bonjour à tous,

@Pierrot : j'ai peur que FileDialog n'existe pas sous Excel 2000

peut-être (pas de moi, je ne sais plus où je l'ai récupéré...)

Code:
Function PickFolder(Optional strStartDir As Variant = "") As String
Dim SA As Object, f As Object
    Set SA = CreateObject("Shell.Application")
    Set f = SA.BrowseForFolder(0, "Choisir un dossier", 16 + 32 + 64, strStartDir)
    If (Not f Is Nothing) Then
        PickFolder = f.Items.Item.Path
    End If
    Set f = Nothing
    Set SA = Nothing
End Function

Sub test()
    a = PickFolder
    MsgBox a
End Sub
 
Re : Entrer le chemin d'un dossier dans une cellule

Merci à tous
FileDialog ne marche effectivement pas, mais la solution de Tototiti2008 fonctionne parfaitement ; en plus elle ne pose pas de problème pour un utilisateur non familier avec excel, et permet de créer un dossier inexistant auparavant. Je cherchais cela depuis des années !
 
Re : Entrer le chemin d'un dossier dans une cellule

Re bonjour,

J'ai trouvé quelques explications de microsoft en tapant "Shell automation" dans la barre de recherche d'internet, puis en ajoutant dans Outils/Références : Microsoft Shell Controls and Automation" ; ensuite, explorateur d'objet ; bibliothèque Shell 32 ; classe Shell.
Cela m'a permis de faire une sub pour mettre les fenêtres en "tuiles" verticales et de remplacer la fonction Pickfolder par une sub :
Code:
Sub FenVertic()
    Dim SA As Object, Bof
    Set SA = CreateObject("Shell.Application")
    Bof = SA.TileVertically() ' ou Horizontally
    Set SA = Nothing
End Sub
Sub PickFolder()
    Dim SA As Object, f As Object
    Set SA = CreateObject("Shell.Application")
    Set f = SA.BrowseForFolder(0, "Si vous créez un nouveau dossier, " _
    & "sélectionnez-le sous ce nom (Nouveau dossier) dans la liste" & vbCrLf _
    & "Si besoin, renommez-le immédiatement, puis OK", 0)
    If (Not f Is Nothing) Then
        Range("A1") = f.Items.Item.Path
    End If
    Set f = Nothing
    Set SA = Nothing
End Sub
Les codes 16 + 32 + 64 ont été remplacés par 0 : ça marche mieux pour créer un nouveau dossier
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
867
Retour