Vous ne gardez que la partie qui vous intéresse, soit :
Option Explicit
Public volume As Long
Sub ListFiles()
Dim f As Object, fso As Object
Dim dossier As String
Dim wB As Workbook, wS As Worksheet
Dim i As Integer, volMo As Long, volOct As Long
Set wB = ActiveWorkbook
Set wS = ActiveSheet
Set fso = CreateObject("Scripting.FileSystemObject")
volume = 0
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
If .SelectedItems.Count = 0 Then
MsgBox "Abandon"
End
End If
dossier = .SelectedItems(1)
End With
scanFichiers wS, fso, dossier
volOct = volume Mod 1048576
volMo = Int(volume / 1048576)
MsgBox "Volume total des fichiers = " & volMo & " Mo - " & volOct & " octets"
End Sub
Private Sub scanFichiers(wS, fso, dossier)
Dim f, fo, ficTaille As Long
For Each f In fso.GetFolder(dossier).Files
ficTaille = FileLen(dossier & "\" & f.Name)
volume = volume + ficTaille
Next 'f
For Each fo In fso.GetFolder(dossier).subFolders
scanFichiers wS, fso, dossier & "\" & fo.Name
Next 'fo
End Sub