Bonjour,
Pour utiliser une macro dans une cellule Excel, il faut employer une fonction (Function) et non pas une procédure (Sub). C'est pour ça que tu as en retour Name : il ne trouve pas la fonction ListeFichiers.
Voici une fonction matricielle :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Option Explicit
Function ListeFichiers(Dossier As String) As Variant
Dim t(), i&, f$
f = Dir(Dossier)
Do While f <> ""
i = i + 1
ReDim Preserve t(1 To i)
t(i) = f
f = Dir
Loop
ListeFichiers = Application.Transpose(t)
End Function
Sub Test()
Dim t
t = ListeFichiers("D:/Temp/")
Stop
End Sub |
Le résultat est une matrice,
pour l'utiliser il faut sélectionner la plage de cellules destinée à recevoir la liste des fichiers, puis saisir la formule :
=ListeFichiers("I:\Séries")
et valider cette formule par Ctrl+Maj+Entrée
Dans la barre de formule, les formules matricielles sont encadrées par des accolades :
Partager