liste ET taille de répertoires sur un lecteur

  • Initiateur de la discussion Initiateur de la discussion Roulio
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
 
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.
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
37
Affichages
892
  • Question Question
Autres Code VBA
Réponses
11
Affichages
294
Retour