liste ET taille de répertoires sur un lecteur

R

Roulio

Guest
Salut,

C'est pas forcément du VBA, mais j'aimerai obtenir, à partir d'excel, la liste et la taille des répertoires d'un dossier. (faire la liste, c'est OK, c'est obtenir la taille que j'ai pas)

Merci d'avance.
 
T

Ti

Guest
voilà une fonction que tu pourras appeler directement dans Excel, par contre, elle utilise l'objet Folder et je ne me souviens plus si cet objet existe déjà dans excel 2000. Si tu utilises Excel XP, pas de problème, sinon fais le test : tu copies ces deux procédures dans un module, puis tu appelles "Test". Si VBA te renvoie une erreur de compilation, alors il te faudra trouver une autre solution (passage par une fonction API par ex.).

Function TailleDossier(Fichier As String) As Long
Dim Fs
If Fichier = "" Then Exit Function
Set Fs = CreateObject("Scripting.FileSystemObject")
TailleDossier = Fs.GetFolder(Fichier).Size
End Function

Sub Test()
MsgBox TailleDossier(ThisWorkbook.Path) & " octets"
End Sub


Dans une feuille Excel, tu peux l'appeler ainsi:
=tailledossier(NomDossier)
où NomDossier est le nom des dossiers dont tu as fait la liste précédemment.
 
J

Johan

Guest
Bonjour Roulio et Ti,

j'ai trouvé ce topic très intéressant, donc je m'y suis mis à faire la même chose pour obtenir une liste de fichiers par une fonction (comme décrit au dessus)... mais sans résultats positive (je crée apparamment une référence circulaire) ... Avez-vous une petite idée?

Voici mon code:

Function MontreListeFichiers(Filespec)
Dim fs, f, f1, fc, i, y

i = ActiveCell.Rows.Row
y = ActiveCell.Columns.Column

Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(Filespec)
Set fc = f.Files


For Each f1 In fc
Sheets(1).Cells(i, y).Value = f1.Name
i = i + 1
Next

End Function


Merci beaucoup,

Johan
 

Discussions similaires

  • Résolu(e)
Microsoft 365 Taille UserForm
Réponses
3
Affichages
434

Statistiques des forums

Discussions
313 029
Messages
2 094 552
Membres
106 052
dernier inscrit
pseudomay