Bonjour, j'aimerais savoir comment utiliser les "FSO" en VB je suis débutant x)

Ce code à pour but de lister tout les fichiers avec une extension choisie d'un disque dur
Voici mon code qui fonctionne parfaitement sous Excel :

Sub Test()
Dim MonRepertoire As String
Dim f1, f2, fso
Dim fs, f, s, sf, file, f3, f4, f5, f6, f7, f8, f9, f10, I
Dim ext
ext = "png"
fso = CreateObject("Scripting.FileSystemObject")
MonRepertoire = "I:\"
On Error Resume Next
I = "------------------------------------------------------------ Début de l'analyse ------------------------------------------------------------"
s = ""
ext = "png"
TextBox1.Clear()
MonRepertoire = "I:\"
On Error Resume Next
'----------------------------------Première Couche------------------------------------------
For Each f In fso.GetFolder(MonRepertoire).Files
If UCase(ext) = UCase(fso.GetExtensionName(f.Name)) Then
s = s & f
TextBox1.Text = s
End If
Next f
End Sub
Aucune faute de syntaxe mais je ne comprend pas le message d'erreur lors de l’exécution :
Exception levée*: 'System.Runtime.InteropServices.COMException' dans Microsoft.VisualBasic.dll
Exception levée*: 'System.InvalidCastException' dans Microsoft.VisualBasic.dll

Que dois-je faire ? Merci d'avance