un essai avec une fonction :
Sub XXXXXXXXXXXX()
Dim Liste1()
ReDim Liste1(1 To 12) 'en déclarant directement la taille du tableau, il y "blocage" au niveau fonction
For i = 1 To 12
Liste1(i) = Range("A" & i)
Next
'Appel de la fonction Inserer tableau, Position, donnée
Inserer Liste1, 2, "toto"
'lecture du tableau après modif
For Each cel In Liste1
MsgBox cel
Next
End Sub
Function Inserer(Tablo, Pos, Donnée)
ReDim Preserve Tablo(1 To UBound(Tablo) + 1)
For i = UBound(Tablo) To Pos + 1 Step -1
Tablo(i) = Tablo(i - 1)
Next
Tablo(Pos) = Donnée
End Function
Pour bien faire, il faudrait ajouter un test pour être sûr que la position souhaitée soit compatible avec les indices du tableau...
S'il y a des milliers d'éléments, pas sûr que se soit très rapide ....