Docck
Messages postés16Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention 2 avril 2003
-
21 mars 2003 à 09:05
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 2011
-
16 avril 2004 à 13:13
Salut,
Je cherche a faire un treeview en VBA qui me fera toute l'arborescence du disque dur comme pour enregistrer un fichier.
Ou alors si vous savez comment faire pour Enregistrer un fichier comme le font tous les logiciels, cest a dire ouvrir une fenetre avec la liste des dossiers et pouvoir enregistrer avec le nom qu'on veut.
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 20119 16 avril 2004 à 13:13
C'est chaud sous access.
Prends d'abord un listview (LV1) et treeview(TV1) et imageList1 6.0 dans un form
Place une image de dossier dans l'imageList1 et appelle le "Dossier"
'Le load ne liste que les HDD
Private Sub Form_Load()
Dim fs As Object
Dim dc, d
Dim str, n, img As String
Set fs = CreateObject("Scripting.FileSystemObject")
Set dc = fs.Drives
For Each d In dc
If (d.IsReady) Then
str = fs.GetDrive(d.Driveletter).RootFolder
Else:
GoTo suite2
End If
Select Case d.DriveType
Case 0:
n = "Inconnu"
Case 1:
n = "Amovible"
Case 2:
n = d.VolumeName
img = "HDD"
Case 3:
n = d.ShareName
img = "DR"
Case 4:
n = "CD-ROM"
img = "CD"
Case 5:
n = "Disque RAM"
End Select
n = n & " (" & d.Driveletter & ":)"
'Création des noeuds racines des disques)
If (d.DriveType <> 3) Then
Me.TV1.Nodes.Add , , str, n, img
AjouteRep str
End If
suite2:
Next
End Sub
'Procédure récursive permettant de créer tous les nodes issus de l'arborescence du ou des disques
Private Sub AjouteRep(ByVal str As String)
Dim fs, f, fld, fld1, sf
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(str)
Set sf = f.SubFolders
For Each fld In sf
If fld.Name = "RECYCLER" Then GoTo suite
If fld.Name = "System Volume Information" Then GoTo suite
'ajoute les dossier
If f.IsRootFolder = True Then
Me.TV1.Nodes.Add str, tvwChild, fld.Path, fld.Name, "Dossier"
'Ajoute les sous dossiers
AjouteRep fld.Path
Else:
Me.TV1.Nodes.Add str, tvwChild, fld.Path, fld.Name, "Dossier"
AjouteRep fld.Path
End If
suite:
Next
End Sub
Voilà, qui t'avancera un peu, ensuite à toi de jouer pour la gestion des clicks en tout genre.
Attention, n'oublies pas que sous access, il faut écrire
Private Sub TV1_NodeClick(ByVal Node As Object)
Private Sub LV1_ItemClick(ByVal Item As Object)