Soyez le premier à donner votre avis sur cette source.
Snippet vu 56 558 fois - Téléchargée 31 fois
Option Explicit Const PathMDB = "D:\Mes_scripts_VBFrance" MsgBox TriRepertoire,,"Enumération " & PathMDB '---lister les fichiers du répertoire --- Function TriRepertoire() Dim fso, fichier, fileItem Dim i, imax, z, valeur, cible, liste Set fso = CreateObject("Scripting.FileSystemObject") imax = 0 'début de l'énumération For Each fichier In fso.GetFolder(PathMDB).Files Set fileItem = fso.GetFile(fichier) imax = imax + 1 ReDim Preserve Tableau(2, imax) Tableau(1, imax) = Fichier.Name Tableau(2, imax) = FileItem.DateLastModified '---trier les fichiers par ordre décroissant de création --- Do Valeur = 0 For i = 1 To imax - 1 If CDate(Tableau(2, i)) < CDate(Tableau(2, i + 1)) Then For z = 1 To 2 Cible = Tableau(z, i) Tableau(z, i) = Tableau(z, i + 1) Tableau(z, i + 1) = Cible Next Valeur = 1 End If Next Loop While Valeur = 1 Set fileItem = nothing Next 'Affichage du résultat classé For i = 1 To imax liste = liste &vbTab& i &vbTab& Tableau(1, i) &Space(2)&vbTab&vbTab& Tableau(2, i) &vbCr 'MsgBox liste,,i & " / " & imax &Space(3)& "Liste du répertoire"&Space(3)& PathMDB If i = imax Then MsgBox liste ,,"Liste du répertoire" &Space(3)& PathMDB Next TriRepertoire = liste Set fso = nothing End Function
12 mai 2007 à 15:42
dim imax
'....
'....
Function ShowFolderList()
Dim fso, fichier, strListe, r
Dim Valeur, z, Cible, liste
Set fso = CreateObject("Scripting.FileSystemObject")
imax = 0
For Each fichier In fso.GetFolder(strPath).Files
imax = imax + 1
ReDim Preserve Tableau(2, imax)
Tableau(1, imax) = fichier.Name
Tableau(2, imax) = fichier.DateLastModified
Valeur = 0
For i 1 To i (imax - 1)
If CDate(Tableau(2, imax)) < CDate(Tableau(2, imax + 1)) Then
For z = 1 To 2
Cible = Tableau(z, imax)
Tableau(z, imax) = Tableau(z, imax + 1)
Tableau(z, imax + 1) = Cible
Next
Valeur = 1
End If
Next
Next
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Affichage du résultat des fichiers triés par date de modification
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
liste = ""
For r = 1 To imax
liste = liste & vbCrLf & r & " " & Tableau(2, r) & " " & Tableau(1, r)
Next
liste = vbCrLf & "N° Date de modification Nom du fichier" & vbCrLf & liste
ShowFolderList = liste
Set fso = Nothing
End Function
12 mai 2007 à 15:41
il faut remplacer
For imax = 1 To imax - 1
par
For i 1 To i (imax - 1)
ensuite si vous utilisez path alors ce paramètre d'entrée est à supprimer puisqu'il ne sert jamais : strPath
ensuite si vous voulez lister le contenu du tableau dans un composant queconque ( combo , listbox etc ... ) il vaut mieux déclarer la variable imax en tant que variable globale ( la sortir de la fonction ShowFolderList
12 mai 2007 à 15:22
12 mai 2007 à 15:21
13 avril 2007 à 09:04
J'ai vu ce lien sur une page du forum alors je viens voir.
J'ai juste une petite suggestion. Pourquoi utiliser des variables qui n'ont pas forcément lieu d'être,
Je pense par exemple Dossier, à fic et a f.
Je m'explique
On peu très bien mettre
For Each fichiers In fso.GetFolder(Path).Files
je suis d'accord avec toi, c'est peu être moins lisible, et moins simple à comprendre.
En revanche ce dont je suis sur c'est que f ne sert strictement à rien puisque fichiers represente déjà f donc
Set f = fso.GetFile(fichiers) est inutile
Enfin ceci est juste mon avis (personnel qui n'engage que moi) :)
@ller à plus sur le forum.
Julien
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.