Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

déclarer un tableau de tableau et chercher chaque élément d'un tableau

7 réponses
Avatar
marc.dufresne
bonjour à tous
quelques problèmes avec les tableaux:
je sais déclarer un tableau multi colonne: dim tableau (1 to 9, 1 to 9, 0 to
10) as integer
çà je sais faire mais je n' arrive pas à déclarer un tableau de tableau je
voudrais créer un premier tableau (1 to 9, 1 to 9) as valeur_tableau (0 to
10) as integer. Alors comment fait on la déclaration Pour dire que lorsque
j'appel tableau(1,1) j'ai dedans un ensemble de 11 valeurs ???

Autre problème je sais créer une zone de cellule dans excel : set
zone=range(cells(1,1),cells(9,9))
et je peux facilement chercher chaque élément de cette zone: for each cel
in zone .......
donc j'aurais voulu faire la même chose pour un tableau: pour chaque
éléments du tableau .....
mais comment faire cette syntaxe????

merci d'avance

7 réponses

Avatar
Patrick Philippot
Bonjour,

çà je sais faire mais je n' arrive pas à déclarer un tableau de
tableau



Déclarez un tableau de Variant, le Variant pouvant être lui-même un
tableau.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
X
Bonjour,

La forme pour un tableau à 2 entrées:

Dim ma_variable As mon_type_de_variable (x, y)

Dim var As Long (4, 8)
var(1,8)... var(4,8)... var(2,1...var(2,8)... var(4,1)... var(4,8)

------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"marc.dufresne" a écrit dans le
message de news: 440fff96$0$23401$
bonjour à tous
quelques problèmes avec les tableaux:
je sais déclarer un tableau multi colonne: dim tableau (1 to 9, 1 to 9, 0
to
10) as integer
çà je sais faire mais je n' arrive pas à déclarer un tableau de tableau je
voudrais créer un premier tableau (1 to 9, 1 to 9) as valeur_tableau (0 to
10) as integer. Alors comment fait on la déclaration Pour dire que lorsque
j'appel tableau(1,1) j'ai dedans un ensemble de 11 valeurs ???

Autre problème je sais créer une zone de cellule dans excel : set
zone=range(cells(1,1),cells(9,9))
et je peux facilement chercher chaque élément de cette zone: for each cel
in zone .......
donc j'aurais voulu faire la même chose pour un tableau: pour chaque
éléments du tableau .....
mais comment faire cette syntaxe????

merci d'avance



Avatar
jean-marc
"marc.dufresne" wrote in message
news:440fff96$0$23401$
bonjour à tous
quelques problèmes avec les tableaux:
je sais déclarer un tableau multi colonne: dim tableau (1 to 9, 1 to 9, 0


to
10) as integer
çà je sais faire mais je n' arrive pas à déclarer un tableau de tableau je
voudrais créer un premier tableau (1 to 9, 1 to 9) as valeur_tableau (0 to
10) as integer. Alors comment fait on la déclaration Pour dire que lorsque
j'appel tableau(1,1) j'ai dedans un ensemble de 11 valeurs ???

Autre problème je sais créer une zone de cellule dans excel : set
zone=range(cells(1,1),cells(9,9))
et je peux facilement chercher chaque élément de cette zone: for each cel
in zone .......
donc j'aurais voulu faire la même chose pour un tableau: pour chaque
éléments du tableau .....
mais comment faire cette syntaxe????



Hello,

La façon la plus souple et la plus naturelle dans ce cas
consiste à définir un type utilisateur pour le tableau le
plus interne (celui qui va de 0 à 10).

Tu déclares ensuite ton tableau à 2 dimensions comme étant
de ce type interne.
VOici un exemple:

' Déclaration du tableau interne
Private Type TabloInterne
t(0 To 10) As Integer
End Type

Private Sub Form_Load()

' Déclaration du grand tableau à deux dimensions
Dim Tablo(0 To 9, 0 To 9) As TabloInterne
Dim i As Integer
Dim j As Integer
Dim k As Integer

For i = 0 To 9
For j = 0 To 9
For k = 0 To 10
' et ici, tout va bien car
' Tablo(i,j) est de type TabloInterne
' Tu peux donc l'utiliser normalement
Tablo(i, j).t(k) = i * 1000 + j * 100 + k
Next k
Next j
Next i
End Sub

On évite l'emploi d'un variant, ce qui est mieux à plus d'un titre:
- c'est plus performant
- c'est plus propre (nos variables sont convenablement typés)

Sur ce principe, il n'y a pas de limites, car on peut imbriquer
un type dans un type.

--
Jean-marc
Avatar
Patrice Henrio
il faut autrement déclarer un type utilisateur qui sera un tableau

Type tTableau
valeurTableau(0 to 10) as integer
End Type

Tableau(1 to 9, 1 to 9) as tTableau

et voilà

Pour parcourir avec for each un tableau il faut déclarer un variant

voici un exemple qui montre comment se fait le parcours : on fait varier
d'abord la dernière composante, puis l'avant dernière et la dernière, puis
...

Private Sub Command1_Click()
Dim Tableau(1 To 9, 1 To 9) As Long
Dim I As Long, J As Long, V As Variant

For I = 1 To 9
For J = 1 To 9
Tableau(I, J) = I + J
Next J
Next I

For Each V In Tableau
Debug.Print V
Next
End Sub



"marc.dufresne" a écrit dans le
message de news: 440fff96$0$23401$
bonjour à tous
quelques problèmes avec les tableaux:
je sais déclarer un tableau multi colonne: dim tableau (1 to 9, 1 to 9, 0
to
10) as integer
çà je sais faire mais je n' arrive pas à déclarer un tableau de tableau je
voudrais créer un premier tableau (1 to 9, 1 to 9) as valeur_tableau (0 to
10) as integer. Alors comment fait on la déclaration Pour dire que lorsque
j'appel tableau(1,1) j'ai dedans un ensemble de 11 valeurs ???

Autre problème je sais créer une zone de cellule dans excel : set
zone=range(cells(1,1),cells(9,9))
et je peux facilement chercher chaque élément de cette zone: for each cel
in zone .......
donc j'aurais voulu faire la même chose pour un tableau: pour chaque
éléments du tableau .....
mais comment faire cette syntaxe????

merci d'avance



Avatar
marc.dufresne
Bonsoir à tous
mille merci super sympa
quand c'est bien expliqué c'est simple
j'aurais encore l'occasion de me tourner vers vous
bonne nuit



"Patrice Henrio" a écrit dans le message de
news: %
il faut autrement déclarer un type utilisateur qui sera un tableau

Type tTableau
valeurTableau(0 to 10) as integer
End Type

Tableau(1 to 9, 1 to 9) as tTableau

et voilà

Pour parcourir avec for each un tableau il faut déclarer un variant

voici un exemple qui montre comment se fait le parcours : on fait varier
d'abord la dernière composante, puis l'avant dernière et la dernière, puis
...

Private Sub Command1_Click()
Dim Tableau(1 To 9, 1 To 9) As Long
Dim I As Long, J As Long, V As Variant

For I = 1 To 9
For J = 1 To 9
Tableau(I, J) = I + J
Next J
Next I

For Each V In Tableau
Debug.Print V
Next
End Sub



"marc.dufresne" a écrit dans le
message de news: 440fff96$0$23401$
bonjour à tous
quelques problèmes avec les tableaux:
je sais déclarer un tableau multi colonne: dim tableau (1 to 9, 1 to 9, 0
to
10) as integer
çà je sais faire mais je n' arrive pas à déclarer un tableau de tableau
je
voudrais créer un premier tableau (1 to 9, 1 to 9) as valeur_tableau (0
to
10) as integer. Alors comment fait on la déclaration Pour dire que
lorsque
j'appel tableau(1,1) j'ai dedans un ensemble de 11 valeurs ???

Autre problème je sais créer une zone de cellule dans excel : set
zone=range(cells(1,1),cells(9,9))
et je peux facilement chercher chaque élément de cette zone: for each
cel
in zone .......
donc j'aurais voulu faire la même chose pour un tableau: pour chaque
éléments du tableau .....
mais comment faire cette syntaxe????

merci d'avance







Avatar
Patrice Henrio
Désolé Jean-marc je n'ai eu ta réponse qu'après avoir posté mon mail,
celle-ci est donc redondante.

"jean-marc" a écrit dans le message de news:
44101d02$0$29465$
"marc.dufresne" wrote in message
news:440fff96$0$23401$
bonjour à tous
quelques problèmes avec les tableaux:
je sais déclarer un tableau multi colonne: dim tableau (1 to 9, 1 to 9, 0


to
10) as integer
çà je sais faire mais je n' arrive pas à déclarer un tableau de tableau
je
voudrais créer un premier tableau (1 to 9, 1 to 9) as valeur_tableau (0
to
10) as integer. Alors comment fait on la déclaration Pour dire que
lorsque
j'appel tableau(1,1) j'ai dedans un ensemble de 11 valeurs ???

Autre problème je sais créer une zone de cellule dans excel : set
zone=range(cells(1,1),cells(9,9))
et je peux facilement chercher chaque élément de cette zone: for each
cel
in zone .......
donc j'aurais voulu faire la même chose pour un tableau: pour chaque
éléments du tableau .....
mais comment faire cette syntaxe????



Hello,

La façon la plus souple et la plus naturelle dans ce cas
consiste à définir un type utilisateur pour le tableau le
plus interne (celui qui va de 0 à 10).

Tu déclares ensuite ton tableau à 2 dimensions comme étant
de ce type interne.
VOici un exemple:

' Déclaration du tableau interne
Private Type TabloInterne
t(0 To 10) As Integer
End Type

Private Sub Form_Load()

' Déclaration du grand tableau à deux dimensions
Dim Tablo(0 To 9, 0 To 9) As TabloInterne
Dim i As Integer
Dim j As Integer
Dim k As Integer

For i = 0 To 9
For j = 0 To 9
For k = 0 To 10
' et ici, tout va bien car
' Tablo(i,j) est de type TabloInterne
' Tu peux donc l'utiliser normalement
Tablo(i, j).t(k) = i * 1000 + j * 100 + k
Next k
Next j
Next i
End Sub

On évite l'emploi d'un variant, ce qui est mieux à plus d'un titre:
- c'est plus performant
- c'est plus propre (nos variables sont convenablement typés)

Sur ce principe, il n'y a pas de limites, car on peut imbriquer
un type dans un type.

--
Jean-marc





Avatar
jean-marc
Pas de soucis :-)

Ca prouve que 2 personnes peuvent avoir simultanément la même
bonne idée :-)

Bonne journée!

--
Jean-marc

"Patrice Henrio" wrote in message
news:
Désolé Jean-marc je n'ai eu ta réponse qu'après avoir posté mon mail,
celle-ci est donc redondante.

"jean-marc" a écrit dans le message de news:
44101d02$0$29465$
> "marc.dufresne" wrote in


message
> news:440fff96$0$23401$
>> bonjour à tous
>> quelques problèmes avec les tableaux:
>> je sais déclarer un tableau multi colonne: dim tableau (1 to 9, 1 to 9,


0
> to
>> 10) as integer
>> çà je sais faire mais je n' arrive pas à déclarer un tableau de tableau
>> je
>> voudrais créer un premier tableau (1 to 9, 1 to 9) as valeur_tableau (0
>> to
>> 10) as integer. Alors comment fait on la déclaration Pour dire que
>> lorsque
>> j'appel tableau(1,1) j'ai dedans un ensemble de 11 valeurs ???
>>
>> Autre problème je sais créer une zone de cellule dans excel : set
>> zone=range(cells(1,1),cells(9,9))
>> et je peux facilement chercher chaque élément de cette zone: for each
>> cel
>> in zone .......
>> donc j'aurais voulu faire la même chose pour un tableau: pour chaque
>> éléments du tableau .....
>> mais comment faire cette syntaxe????
>
> Hello,
>
> La façon la plus souple et la plus naturelle dans ce cas
> consiste à définir un type utilisateur pour le tableau le
> plus interne (celui qui va de 0 à 10).
>
> Tu déclares ensuite ton tableau à 2 dimensions comme étant
> de ce type interne.
> VOici un exemple:
>
> ' Déclaration du tableau interne
> Private Type TabloInterne
> t(0 To 10) As Integer
> End Type
>
> Private Sub Form_Load()
>
> ' Déclaration du grand tableau à deux dimensions
> Dim Tablo(0 To 9, 0 To 9) As TabloInterne
> Dim i As Integer
> Dim j As Integer
> Dim k As Integer
>
> For i = 0 To 9
> For j = 0 To 9
> For k = 0 To 10
> ' et ici, tout va bien car
> ' Tablo(i,j) est de type TabloInterne
> ' Tu peux donc l'utiliser normalement
> Tablo(i, j).t(k) = i * 1000 + j * 100 + k
> Next k
> Next j
> Next i
> End Sub
>
> On évite l'emploi d'un variant, ce qui est mieux à plus d'un titre:
> - c'est plus performant
> - c'est plus propre (nos variables sont convenablement typés)
>
> Sur ce principe, il n'y a pas de limites, car on peut imbriquer
> un type dans un type.
>
> --
> Jean-marc
>
>
>