cathodique
XLDnaute Barbatruc
Bonjour,
Je m'initie aux variables Tableau et je bute sur un problème.
Sur un tutoriel, il est mis: Sous VBA, les tableaux à une dimension sont en ligne par défaut, donc pour Excel, le code que nous venons d'écrire équivaut à : Range("I1:I5") = "Toto" (soit le premier index).
En effet, comme il est conseillé en appliquant la fonction transpose, on transfert le tableau en colonne sur la feuille.
Étant donné que le tableau est par défaut en ligne, je ne trouve pas comment le transférer sur la feuille en ligne. NB: je voudrais aussi utiliser la fonction Resize.
Merci pour votre aide.
Je m'initie aux variables Tableau et je bute sur un problème.
Sur un tutoriel, il est mis: Sous VBA, les tableaux à une dimension sont en ligne par défaut, donc pour Excel, le code que nous venons d'écrire équivaut à : Range("I1:I5") = "Toto" (soit le premier index).
En effet, comme il est conseillé en appliquant la fonction transpose, on transfert le tableau en colonne sur la feuille.
Étant donné que le tableau est par défaut en ligne, je ne trouve pas comment le transférer sur la feuille en ligne. NB: je voudrais aussi utiliser la fonction Resize.
VB:
Sub lesArrayCestSimple1() 'première approche
Dim Tb() As Variant
Dim i As Byte
Cells.Clear
Tb = Array("Toto", "Zaza", "Mimi", "Nono", "Babu")
For i = 1 To UBound(Tb, 1) 'UBound retourne la limite supérieure
'de la dimension voulue d'un tableau
Cells(i, 1) = Tb(i) 'on remplit en colonne
Cells(5, i + 2) = Tb(i) 'on remplit en ligne
Next i
'Transfert Tb sur la feuille
'------------------------------
'transfert en colonne fonctionne
Range("e10").Resize(UBound(Tb)) = Application.Transpose(Tb)
'transfert en ligne ne fonctionne pas, renvoie le 1er index
Range("f10").Resize(UBound(Tb)) = Tb
Stop
End Sub