Pré-remplir un tableau 2D

Bonjour à tous

une question vraiment basique (je suis un débutant), je voulais faire une fonction faisant une interpolation double dans un tableau 2D pré-rempli dans VBA. En fait je voudrais déclarer mon tableau et le remplir de valeurs dans un module excel. En faisant le bout de code en dessous. Excel me dit "erreur de compilation instruction incorrecte à l'extérieur d'une procédure. Quelqu'un peut me dire comment initialiser un tableau dont les valeurs ne changeront pas ?

Merci pour votre aide sur une question aussi basique!

Dim tab(2,2) As Integer

      ' Assign values to each element.
      tab(0,0) = 23
      tab(0,1) = 19
      tab(1,0) = 21
      tab(1,1) = 21

Hello,

Il faut que tu positionnes ton code dans une procédure(sub - end sub)/fonction(function - end function)

tab n'est pas un nom valable pour vba, c'est un mot réservé.

Sub InterpolationDoubleTableau2DPreRempli()

    Dim IntTab(2, 2) As Integer

    IntTab(0, 0) = 35
    IntTab(0, 1) = 23
    IntTab(0, 2) = 19

    IntTab(1, 0) = 28
    IntTab(1, 1) = 21
    IntTab(1, 2) = 96

    IntTab(2, 0) = 287
    IntTab(2, 1) = 215
    IntTab(2, 2) = 965

End Sub

Merci beaucoup Rag02700.

Par le passé j'ai fait du delphi et on déclarait un tableau sans forcément le mettre dans une procédure. J'ai mis en pratique ton explication et excel compile.

Pour arriver à mes fin j'ai fait un test en créant une fonction qui me retourne une valeur du tableau. quand je tape dans une cellule =CS(1,1), excel me retourne #valeur! . Est-ce que tu sais pourquoi ?

P.S : je ne pensais pas galérer comme ca avec un tableau :-D

*****************************************************************************************************************

Public Function CS (i As Integer, j As Integer)
Dim Cs_aero(4, 3) As Double
Cs_aero(0, 0) = 0
Cs_aero(0, 1) = 0
Cs_aero(0, 2) = 10
Cs_aero(0, 3) = 20
Cs_aero(0, 4) = 30
Cs_aero(1, 0) = 0.2
Cs_aero(1, 1) = 0.269
Cs_aero(1, 2) = 0.308
Cs_aero(1, 3) = 0.345
Cs_aero(1, 4) = 0.378
Cs_aero(2, 0) = 0.4
Cs_aero(2, 1) = 0.269
Cs_aero(2, 2) = 0.305
Cs_aero(2, 3) = 0.339
Cs_aero(2, 4) = 0.371
Cs_aero(3, 0) = 0.6
Cs_aero(3, 1) = 0.269
Cs_aero(3, 2) = 0.302
Cs_aero(3, 3) = 0.335
Cs_aero(3, 4) = 0.364
Cs_aero(4, 0) = 0.8
Cs_aero(4, 1) = 0.269
Cs_aero(4, 2) = 0.302
Cs_aero(4, 3) = 0.331
Cs_aero(4, 4) = 0.357
Cs_aero(5, 0) = 1
Cs_aero(5, 1) = 0.271
Cs_aero(5, 2) = 0.303
Cs_aero(5, 3) = 0.331
Cs_aero(5, 4) = 0.354
CS = Cs_aero(i, j)

End Function

Je peux le dire, t'es rouillé mon vieux !

Dans une formule excel c'est =CS(1;1) et non =CS(1,1)

De même que :

    Dim Cs_aero(4, 3) As Double

    Cs_aero(0, 0) = 0
    Cs_aero(0, 1) = 0
    Cs_aero(0, 2) = 10
    Cs_aero(0, 3) = 20
'    Cs_aero(0, 4) = 30 ==> Pas possible au vu de la déclaration du tableau
    Cs_aero(1, 0) = 0.2
    Cs_aero(1, 1) = 0.269
    Cs_aero(1, 2) = 0.308
    Cs_aero(1, 3) = 0.345
''    Cs_aero(1, 4) = 0.378 ==> Pas possible au vu de la déclaration du tableau

Un infini merci à toi rag02700.

Ca marche ! Rouillé, le mot est faible, je dirais ramolli du cerveau (limite neuneu !) et l'âge n'aide pas. Je vais voir maintenant si je suis en mesure d'interpoler ce tableau sans poster toutes les 2 heures !

merci beaucoup pour ton aide et la réactivité aussi

Rechercher des sujets similaires à "pre remplir tableau"