Problème de déclaration pour Fonction qui renvoit un tableau

Bonjour le forum,

j'ai un problème de déclaration de variable pour récupérer le résultat d'une fonction, qui est un tableau.

Un exemple concret :

J'utilise une fonction qui liste dans un tableau tous les dossiers d'un répertoire dont on spécifie le chemin en paramètre :

Function ChercherRépertoire(MyPath As String) As Variant    'La fonction renvoie un tableau

Dim MyName As String
Dim MaListe() As String
Dim a As Integer

a = 0
MyName = Dir(MyPath, vbDirectory)

Do While MyName <> ""
    ' Ignore le répertoire courant et le répertoire contenant le répertoire courant
    If MyName <> "." And MyName <> ".." Then
        ' Utilise une comparaison au niveau du bit pour vérifier que MyName est un répertoire.
        If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
            ReDim Preserve MaListe(a)
            MaListe(a) = MyName
            a = a + 1
        End If  '
    End If
    MyName = Dir    ' Extrait l'entrée suivante
Loop

If a = 0 Then
    ReDim Preserve MaListe(0)
End If

ChercherRépertoire = MaListe

End Function

J'appelle donc cette fonction dans une routine, afin de récupérer mon tableau pour un chemin spécifique :

Sub test()
tableau = ChercherRépertoire("D:\test_macro\")
End Sub

Ce code fonctionne, cependant comme j'utilise tout le temps "Option Explicit" dans mes macros, je dois donc déclarer ma variable "tableau". Mais si je la déclare en Variant, cela ne marche pas, j'ai l'erreur d’exécution "Incompatibilité de type" :

Sub test()
Dim tableau() As Variant '<--- Comment déclarer le tableau ??
tableau = ChercherRépertoire("D:\test_macro\")
End Sub

Comment doit-être déclarer la variable "tableau" ?

Merci d'avance pour votre aide

Bonjour

essaie en enlevant les parenthèses

dim tableau as variant

Bonjour et merci h2so4 !

C'est bien ça, il faut enlever les parenthèse.

Lorsqu'on a la solution devant les yeux, ça parait simple et on se sent idiot !

A+

Rechercher des sujets similaires à "probleme declaration fonction qui renvoit tableau"