Gestionnaire de dossier et récupération du chemin
t
Bonjour,
j'ai un soucis sur le code d'affichage de dossiers et sous-dossiers afficher dans une TreeView
Private Sub CommandButton141_Click()
Dim monrep As String
Dim tvn As Node
TreeView1.Nodes.Clear
' on définit ici le répertoire à "déployer"
monrep = Sheets("Questionnaire technique").Range("i1203").Value & "\" & Sheets("Questionnaire technique").Range("i26") & "_" & Sheets("Questionnaire technique").Range("i144")
If Right$(monrep, 1) <> "\" Then monrep = monrep$ + "\"
Set tvn = TreeView1.Nodes.Add(, vbNullString, monrep, monrep)
deployons monrep
End Sub
Sub deployons(ByVal chemin As String)
Dim nomfic As String, numfic As Integer, tp As String, i As Integer
Dim tvn As Node
If Right$(chemin, 1) <> "\" Then chemin = chemin & "\"
nomfic = Dir$(chemin, vbDirectory)
numfic = 1
Do While nomfic <> ""
If nomfic <> "." And nomfic <> ".." Then
tp = chemin & nomfic
If GetAttr(tp) And vbDirectory Then
Set tvn = TreeView1.Nodes.Add(chemin, tvwChild, tp + "\", nomfic) ', tp + "\"
deployons tp
nomfic = Dir$(chemin, vbDirectory)
For i = 2 To numfic
nomfic = Dir$
Next
End If
End If
nomfic = Dir$: numfic = numfic + 1
Loop
End Sub
'Récupère le chemin du dossier lorsque vous double cliquez sur l'élément
Private Sub TreeView1_DblClick()
'MsgBox TreeView1.SelectedItem.FullPath
'Shell Environ("WINDIR") & "\explorer.exe " & TreeView1.SelectedItem.FullPath, vbNormalFocus
End Subles dossiers et le déploiement s'affiche correctement mais quand je veux récupérer le chemin par le code
TreeView1.SelectedItem.FullPathDeux slash \ apparaisse enter le chemin et la sélection du dossier ce qui m'empêche de récupérer le chemin correctement écris, récupérer via un double click sur le dossier en question et je n'arrive pas à trouver la solution pour régler le problème, pouvez vous m'aider ?
Merci d'avance pour les réponses
thevPassionné d'Excel
- Messages
- 4'199
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
Bonsoir,
Essayer ce code qui construit une arborescence de fichiers via le contrôle TreeView , à partir d'un répertoire donné :
Private Sub CommandButton141_Click()
Dim racine As Node
Dim dossier_départ As Object, fichier As Object
Dim Fso As Object
Dim i As Integer: i = 0
'définition de mon répertoire
Const monrep As String = Sheets("Questionnaire technique").Range("i1203").Value & "\" & Sheets("Questionnaire technique").Range("i26") & "_" & Sheets("Questionnaire technique").Range("i144")
'Création racine de l'arborescence
Set racine = TreeView1.Nodes.Add(Key:="root", Text:=monrep)
racine.Expanded = True
'// création objet FilesSystem
Set Fso = CreateObject("Scripting.FilesystemObject")
'// recherche des fichiers
Set dossier_départ = Fso.GetFolder(monrep)
rech_fichier Fso, dossier_départ, racine, i
End Sub
Sub rech_fichier(Fso As Object, dossier As Object, noeud As Node, i As Integer)
Dim sous_dossier As Object, fichier As Object
Dim niveau As Node
'// recherche fichiers
For Each fichier In dossier.Files
i = i + 1
TreeView1.Nodes.Add noeud, tvwChild, "child" & i, fichier.Name
Next
'// recherche sous-dossier
For Each sous_dossier In dossier.SubFolders
i = i + 1
Set niveau = TreeView1.Nodes.Add(noeud, tvwChild, "child" & i, sous_dossier.Name)
rech_fichier Fso, sous_dossier, niveau, i
Next
End Sub
Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
MsgBox TreeView1.SelectedItem.FullPath
End Sub