Re,
Cela ne peut fonctionner ainsi, il te faut introduire un "vide" dans la source pour pouvoir le faire prélever par Index aux emplacements voulus.
Exemple :
Sub test()
Dim Tablo(), tbl, aa, i%, n%, m%
With ActiveSheet.Range("A1").CurrentRegion
m = .Columns.Count + 1
aa = .Resize(, m).Value
End With
tbl = Array(4, 3, 1, 5, 2, m, m, m, m, 8)
For i = 2 To UBound(aa)
'If condition à satisfaire
ReDim Preserve Tablo(n)
Tablo(n) = WorksheetFunction.Index(aa, i, tbl)
'End If
Next i
With Worksheets("FeuilleCible").Range("A2").Resize(n, UBound(tbl) + 1)
.Value = WorksheetFunction.Transpose(WorksheetFunction.Transpose(Tablo))
'autres instructions éventuelles
End With
End Sub
Tu élargis le tableau source à une colonne vide, tu montes ton tableau colonnes dans une variable (ça facilitera le dimensionnement de la plage cible, et tu l'utilises dans Index), et là ton résultats aura incorporé 4 colonnes vides...
Cordialement.