Fonction VBA retourne un tableau a deux dimension utilisable par une autre

Bonjour ,

Encore une fois, je reviens vers vous après avoir cherché partout :

je cherche a crée une méthode qui renvoi un tableau , que je vais utiliser par la suite pour être un paramètre dans une autre fonction

je bloque déjà sur la première partie , si quelqu’un peut m'aider je vous serai reconnaissant , voila ma méthode et mon erreur !

forum img

Bonjour,

A quoi correspond le ValMin ? Pourquoi le mettre partout ?

Pour récupérer la valeur d'un tableau il faut le/les identifiants.

.

Pourquoi ne pas créer le tableau en public si il doit être utiliser par tout le monde ?

Public MonTableau() As Long

Sub Init()
Initialisation_Tableau (448)
End Sub

Sub Initialisation_Tableau(LaValeur As Long)
ReDim MonTableau(40, 50)
Dim I, J As Integer

For I = 1 To 40
    For J = 1 To 50
        MonTableau(I, J) = LaValeur
    Next
Next

End Sub

Sub Recup_Infos_Tableau()

MsgBox MonTableau(8, 8)

End Sub

Un exemple qui montre juste que le tableau déclaré en public reste en mémoire et peut être utiliser dans d'autre sub

1000 merci @ Moul c'est PARFAIT

Heureux d'avoir pu t'aider !

Bonne continuation

Bonjour,

Pour répondre à la question initiale, le souci vient du typage de la fonction.
Pour qu'elle retourne une variable tableau, il convient d'ajouter, après As Long, les parenthèses : As Long().

Voici un exemple :

Sub EssaiTab()
Dim Tabl() As Long
    Tabl = CreerTerrainUniforme(1234, 40, 50, 1)
    MsgBox Tabl(39, 45)
End Sub

Function CreerTerrainUniforme(ByVal ValMin As Long, Dim_1 As Long, Dim_2 As Long, Optional Base As Integer = 1) As Long()
Dim Terrain() As Long, i As Long, j As Long
    ReDim Terrain(Base To Dim_1, Base To Dim_2)
    For i = Base To Dim_1
        For j = Base To Dim_2
            Terrain(i, j) = ValMin
        Next j
    Next i
    CreerTerrainUniforme = Terrain
End Function
Rechercher des sujets similaires à "fonction vba retourne tableau deux dimension utilisable"