J'essaie de faire en sorte que ma sous-routine VBA exécute une fonction qui crée un tableau, puis transmet ce tableau à une autre fonction qui traite ensuite les éléments de ce tableau. J'ai créé un exemple extrêmement simple qui fonctionne exactement comme mon code réel :
Sub SubRoutine()
ProcessArray CreateArray
End Sub
Function ProcessArray(Arr() As Variant) As Variant
End Function
Function CreateArray() As Variant
Dim Array1(1 To 4) As Variant
CreateArray = Array1
End Function
Il s'agit uniquement des deux fonctions et de la sous-routine qui appelle ces deux fonctions. Le compilateur refuse de compiler mon code et m'explique que :
Erreur de compilation :
Incompatibilité de type : tableau ou type défini par l'utilisateur attendu
Ce à quoi je ne peux que répondre que tout est du même type de données et que l'argument passé est bien un tableau. Juste au cas où vous vous poseriez la question, oui j'ai essayé avec un tableau auquel des données ont été allouées.
Je sais que c'est quelque chose de subtil qui m'échappe dans la syntaxe VBA, mais je n'ai jamais vu d'exemple de ce genre. Toute idée serait grandement appréciée.