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