Variable tableau Array à deux dimensions, copier une dimension entière ?

Charly88

XLDnaute Occasionnel
Bonjour,

La dernière ligne du code suivant permet très simplement de copier vers une feuille un tableau entier :

Code:
Dim Tblo(100,40)

For i = 1 To 100
        For j = 1 To 40       
            Tblo(i, j) = 12*i + 4*j
        Next j
Next i
Range("G2").Resize(UBound(Tblo, 1), UBound(Tblo, 2)).Value = Tblo


Y'a-t-il un moyen simple, et sans boucle, de copier toutes les valeurs de la première dimension pour la valeur x de la deuxième dimension ?
Je peux le faire sans boucle mais puisqu'il est possible d'envoyer le tout avec un simple '=Tblo', je me demande s'il n'est pas tout simplement possible de choisir une dimension entière de ce même tableau. D'autant plus si mon array a précisément 2 dimensions (il contient un range d'une feuille).


Merci aux autres copains pour leur didactiel bien sympa : Ce lien n'existe plus
 

Paritec

XLDnaute Barbatruc
Re : Variable tableau Array à deux dimensions, copier une dimension entière ?

Bonsoir Charly88 le forum
bon alors si j'ai compris
a+
papou:)

VB:
Dim Tblo(100,40)

For i = 1 To 100
        For j = 1 To 40       
            Tblo(i, j) = 12*i + 4*j
        Next j
Next i
Range("G2").Resize(UBound(Tblo, 1), 1)).Value = Tblo
 

Charly88

XLDnaute Occasionnel
Re : Variable tableau Array à deux dimensions, copier une dimension entière ?

Le diable se niche dans les détails, je voudrais pouvoir choisir quelle colonne je veux copier... En jouant sur la zone de réception, je ne peux choisir que sur le nombre de colonnes à copier, en partant systématiquement de la première :-/
 

Charly88

XLDnaute Occasionnel
Re : Variable tableau Array à deux dimensions, copier une dimension entière ?

Merci Mr Boisgontier !

L'application de cette solution à mon cas :

Code:
Public Sub testTab()
Dim Tblo(10, 4)

For i = 1 To 10
        For y = 1 To 4
            Tblo(i, y) = 12 * i + 4 * y
        Next y
Next i
'Le tableau entier :
Range("A1").Resize(UBound(Tblo, 1), UBound(Tblo, 2)).Value = Tblo

'ligne à extraire en ligne :
y = 3
Range("A12").Resize(1, UBound(Tblo, 2)).Value = Application.Index(Tblo, y)

'colonne à extraire en ligne :
y = 2
Range("A14").Resize(1, UBound(Tblo, 1)).Value = Application.Index(Application.Transpose(Tblo), y)

'colonne à extraire en colonne :
y = 2
Range("A16").Resize(UBound(Tblo, 1), 1).Value = Application.Index(Tblo, , y)

End Sub
 

Discussions similaires

Réponses
16
Affichages
469
Réponses
2
Affichages
219

Statistiques des forums

Discussions
312 164
Messages
2 085 875
Membres
103 007
dernier inscrit
salma_hayek