@rocket4
tu a écrit :
... sans au minimum avoir recours à une petite boucle
* désolé, j'avais oublié que dans ton énoncé initial, tu avais précisé : « (sans passer par une boucle via une variable) »
* j'ai trouvé comment faire sans boucle (le code VBA est long uniquement car c'est pour plusieurs exemples)
Option Explicit
Sub Essai()
Dim Tbl, chose, n&
Tbl = Array(Array("table", "chaise", "vélo", "chemise"), Array("rouge", "bleue", "jaune", "blanche"))
n = UBound(Tbl) + 1
'-------------------------------------------------
'résultats à lire en colonne
'-------------------------------------------------
'1er objet
chose = Application.Index(Tbl, , 1)
[A1].Resize(n) = chose
'2ème objet
chose = Application.Index(Tbl, , 2)
[B1].Resize(n) = chose
'3ème objet
chose = Application.Index(Tbl, , 3)
[C1].Resize(n) = chose
'4ème objet
chose = Application.Index(Tbl, , 4)
[D1].Resize(n) = chose
'-------------------------------------------------
'résultats à lire en ligne
'-------------------------------------------------
'1er objet
chose = Application.Index(Tbl, , 1)
[A4].Resize(, n) = Application.Transpose(chose)
'2ème objet
chose = Application.Index(Tbl, , 2)
[A5].Resize(, n) = Application.Transpose(chose)
'3ème objet
chose = Application.Index(Tbl, , 3)
[A6].Resize(, n) = Application.Transpose(chose)
'4ème objet
chose = Application.Index(Tbl, , 4)
[A7].Resize(, n) = Application.Transpose(chose)
End Sub
et voilà : y'a aucune boucle For ! alors, ça te convient ?
(j'espère que oui, car après ça, j'ai rien d'autre à proposer ! )
dhany