michelxld
Messages postés402Date d'inscriptionvendredi 6 août 2004StatutMembreDernière intervention12 octobre 200832 10 nov. 2006 à 17:40
bonjour
tu peux tester
'
'Liste les sous répertoires d'un dossier, dans un TreeVieW
'VBA Excel2002 & WinXP
'
'
Private Sub UserForm_Initialize()
Dim Chemin As String, Dossier As String
Dim Longueur As Integer, i As Integer
'attention au choix du repertoire (au dessus de 300 sous repertoires ,
'le temps d'affichage peut prendre du temps
Chemin = "C:\Documents and Settings\michel\dossier"
'***********************************************
Private Sub ListeRepertoires(SourceRep As String, SousDossiers As Boolean)
'necessite d'activer la reference Microsoft Scripting Runtime
Dim Fso As Scripting.FileSystemObject
Dim SourceFolder As Scripting.Folder
Dim SubFolder As Scripting.Folder
Dim FoItem As Scripting.Folder
Set Fso = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = Fso.GetFolder(SourceRep)
For Each FoItem In SourceFolder.SubFolders
TreeView1.Nodes.Add SourceFolder.Path, _
tvwChild, FoItem.Path, FoItem.Name
Next FoItem
If SousDossiers Then 'recherche dans les sous repertoires
For Each SubFolder In SourceFolder.SubFolders
ListeRepertoires SubFolder.Path, True
Next SubFolder
End If
macroVB
Messages postés26Date d'inscriptionlundi 18 septembre 2006StatutMembreDernière intervention11 mai 2007 10 nov. 2006 à 18:29
Bonsoir Michel , bonsoir tous,
Merci pour ta réponse Michel, je vais l'essayer tout de suite
a titre d'info , l'application que je fais est en VBA word , donc je vais voir le code que tu me proposes, et j'essayerai de l'adapter et je te tiendrai au courant.
macroVB
Messages postés26Date d'inscriptionlundi 18 septembre 2006StatutMembreDernière intervention11 mai 2007 13 nov. 2006 à 17:00
Bonjour Michel, bonjour tous,
j'ai testée ton code Michel, ça marche nikel, je liste dans mon Treeview le contenu de mon répértoire sans problème,
et là j'essaye en fait de selectionner a partir de mon TreeView les checkbox cochés et les mettre dans une ListView pour les ouvrir en clickant dessus a partir du code genre
If TreeView1.ListItems(n).Checked = True Then
ListViewListeFichiers.Text
End if
et apres une fois selectionner un fichier dans la ListView1 l'ouvrir
NFichier= ListView1.ListItems.Count
For n = 1 To NFichier
If ListView1.ListItems(n).Checked = True Then
OpenFile
End If
Next
mais jusqu'au la j'ai pas reussis , ce n'est pas si facile que ça !
macroVB
Messages postés26Date d'inscriptionlundi 18 septembre 2006StatutMembreDernière intervention11 mai 2007 13 nov. 2006 à 17:21
j'ai essayé ce code
Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
ListView1.ListItems.Clear
Dim fic As String
Dim rep As String
rep = Node.FullPath
If Right(rep, 1) <> "" Then rep = rep & ""
Dim fld As Folder
Set fld = fso.GetFolder(rep)
Dim f As File
For Each f In fld.Files
Dim li As ListItem
Set li = ListView1.ListItems.Add(, , f.Name, "File", "Leaf")
li.ListSubItems.Add Key:="Size", Text:=f.Size
li.ListSubItems.Add Key:="Date", Text:=f.DateLastModified
Next
End Sub
ca plante avec un message d'erreur comme quoi le chemin d'accés est introuvable en se pointant sur la ligne
"Set fld = fso.GetFolder(rep)"
Je ne sais pas trop comment faire pour éviter ce poblème?
quelqu'un peut etre a une idée ?
Merci de vos réponses .
Vous n’avez pas trouvé la réponse que vous recherchez ?
macroVB
Messages postés26Date d'inscriptionlundi 18 septembre 2006StatutMembreDernière intervention11 mai 2007 14 nov. 2006 à 11:46
Bojour michel , bonjour tous,
Pour la gestion des projets et pour le classement des fichiers concernant un projet, je cherche en fait a ouvrir un repertoire (repertoire type, qui contient les fichiers modèle du projet qui sont classés dans un emplacement donné) ds un TreeView , et lister les fichiers qui m'intersses qui concerne le projet dans une ListeView , pour permettre apres a l' utilisateur de cocher ceux qu' il veut integerer dans le projet.
et apres de copier, les fichiers cochés dans ma ListView, dans un emplacement suivant l'année et le numéro du projet , car le nom du dossier projet est composé de l'année d'ouverture et d'un numéro d'ordre.
voila j'espère avoir été assez claire , si ce n'est pas claire fais moi signe et je t'expliquerai d'avantage