Initialisation d'un tableau d'entiers

CorwinOfAmber

XLDnaute Nouveau
Bonjour,

J'ai une question un peu bete :eek:, mais je suis géné par l'initialisation d'un simple tableau d'entier.
Je souhaite en fait déclarer un tableau d'entiers de taille bien définie et y mettre des valeurs initiales données (mais quelconques).
Typiquement, je voyais quelquechose du genre :

Dim Tableau(5) As Integer
Tableau = Array (2, 7, 1, 0, 2, 5)

Mais il semblerait que ca ne marche pas comme cela.
J'aimerais bien évidemment eviter d'avoir a saisir :
Tableau (0) = 2
Tableau (1) = 7
....
Car, pour un tableau de petite taille, c'est faisable, mais au delà c'est vite lourd (ici, la taille (5) n'était qu'un exemple). Et vu que ce sont des valeurs quelconques a inserer, je ne peut procéder par boucle ...
En faisant quelques recherches, j'ai cru voir qu'on pouvait soit déclarer un tableau sans taille (Tableau()) soit declarer Variant au lieu d'Integer, mais ca ne fait pas tres logique je trouve. Si je connais parfaitement la taille et le format, pourquoi est-ce que je ne pourrais déclarer mon tableau comme tel...

Donc voila, si vous connaissez les alternatives possibles, je suis preneur ! ;)

D'avance merci !

Corwin

PS : Question bonus : En écrivant seulement "Dim Tableau(5) As Integer" les valeurs du tableau sont-elles initialisées ? à 0, à une autres valeurs ou est-ce l'incertitude ?
 

Roland_M

XLDnaute Barbatruc
Re : Initialisation d'un tableau d'entiers

bonjour

Code:
Dim Tableau As Variant '(pas besoin de dimensionner)
' à savoir que Array débute à(0)
' si tu n'en veux pas tu met une valeur quelconque exemple
'                  1    2    3    4         5
Tableau = Array(0, 123, 456, 789, "essai1", "essa2")
MsgBox Tableau(4) ' affichera "essai1"
 

pierrejean

XLDnaute Barbatruc
Re : Initialisation d'un tableau d'entiers

bonjour CorwinOfAmber

Tu te cmpliques la vie

Tableau = Array (2, 7, 1, 0, 2, 5)

est suffisant

pour t'en convaincre teste cette macro

Code:
Sub test()
tableau = Array(2, 7, 1, 0, 2, 5)
For n = 0 To 5
MsgBox (tableau(n))
Next n
End Sub

Edit : Salut Roland M
 
Dernière édition:

CorwinOfAmber

XLDnaute Nouveau
Re : Initialisation d'un tableau d'entiers

bonjour CorwinOfAmber

Tu te cmpliques la vie

Tableau = Array (2, 7, 1, 0, 2, 5)

est suffisant

pour t'en convaincre teste cette macro

Code:
Sub test()
tableau = Array(2, 7, 1, 0, 2, 5)
For n = 0 To 5
MsgBox (tableau(n))
Next n
End Sub

Edit : Salut Roland M
En fait, je déclare au préalable mon tableau en public en dehors de la procédure. Et comme je sais exactement ce que sera mon tableau, je l'ai logiquement décris au maximum pensant que ca ne pouvais pas faire de mal.
Mais en fait, en mettant simplement "Public Tableau", puis ce que tu as mis pour l'initialisation dans la procédure ca marche.
Ca fait un peu plus "pauvre" que "Public Tableau(5) As Integer", mais ca marche ...
Je trouve ca presque dommage, mais bon, je ne vais pas me casser la tete plus avant.

Merci bien en tout cas !

@+

Corwin
 

Roland_M

XLDnaute Barbatruc
Re : Initialisation d'un tableau d'entiers

re

si tu tiens absolument à ta déclaration: Public TonTableau(5)
tu fais comme ceci:
Code:
Sub test()
Dim Tablo as Variant
Tablo = Array( là tu mets tes valeurs)
' tu initialises TonTableau() sur base de Array()
For N = 0 To 5: TonTableau(N)=Tablo(N): Next
End Sub


salut à toi pierrejean

Roland
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 857
Membres
103 979
dernier inscrit
bderradji