Tableau VBA à deux dimentions : Retour des données

Bonsoir,

J’ai posé une question similaire pour un tableau à une dimension, mais je n’arrive pas à appliquer la solution reçue pour un tableau à deux dimensions.

Pour l’instant, si je remplis un tableau à l’aide des instructions suivantes :

Dim Tableau_Z(999, 9)
Dim I As Byte, j As Integer

For j = 0 To 999
    For I = 0 To 9
        Tableau_Z(j, I) = Range("A" & j + 3) + Cells(2, I + 2)
    Next I
Next j

je retourne les données ainsi :

For j = 0 To 999
    For I = 0 To 9
        Cells(j + 3, I + 2) = Tableau_Z(j, I)
    Next I
Next j

Y a-t-il une manière plus rapide d’effectuer ce retour ?

Mon essai avorté :

Range("B3:K1002") = Application.Transpose(Tableau_Z)

Cordialement,

Bonsoir Yvouille,

Essaie ceci

Sheets("feuil1").Range("A1").Resize(UBound(Tableau_Z, 1), UBound(Tableau_Z, 2)) = Tableau_Z

Tu redimensionnes la cellule A1 en 999 lignes et 9 colonnes

Cordialement

Salut,

Ta proposition semble fonctionner correctement, cependant je n’arrive pas à l’adapter à mon fichier. Dans le classeur ci-joint, la dernière ligne et la dernière colonne ne sont pas traitées. As-tu une idée de la correction nécessaire ?

Amicalement.

bonsoir

vous pouvez essayez ca aussi

Range("B3:K1002") = Tableau_Z

une seule ligne

Passe à 1000 lignes et 10 colonnes.

Mais où prends-tu tes données? Dans quelle feuille?

Mets ton fichier anonymé ça sera plus facile (entre deux huitres)

Cordialement

Salut Amir,

Merci pour ta proposition qui fonctionne parfaitement

Très bonnes salutations à vous tous.

Et merci à toi ddetp88 pour ta proposition d'aide

Ceci dit avec Resize(UBound(.... le code s'adapte à la taille du tableau.

Bonne fin de soirée à vous deux

Cordialement

Bonsoir Yvouille,

au départ semblant simple, ta question m'a fait découvrir un aspect assez troublant de toutes ces dimensions de tableaux!

En Option Base 1, un tableau de (X,Y) démarre à 1 (logique!) jusqu'à la stricte limite de son indice (X ou Y), sous peine d'erreur.

Sans Option Base 1, il démarre à 0 (logique aussi!) mais une boucle allant jusqu'à l'indice (l'indice déclaré en DIM) au lieu de l'indice -1 fonctionnera sans erreur tout en affichant un résultat conforme.

Qui peut m'expliquer?

J'ai un peu changé le fichier test que je vous livre ici! Amusez-vous à jouer avec les Option Base 1 ou non et les indices supérieurs des boucles dans chacun des cas.

Bizarre, non?

Et, entre deux coupes, joyeux réveillon!

A+

9tableau-2d.xlsm (73.79 Ko)
Rechercher des sujets similaires à "tableau vba deux dimentions retour donnees"