Bonjour,
J'ai besoin de redimensionner un tableau dans une boucle, mais mon Excel 2010 refuse de le faire.
Après quelques recherches, voici ou j'en suis :
L'exemple de Ce lien n'existe plus déclenche une erreur de compilation avec ceci (en rouge la partie surlignée par VBA editor) :
Cet autre exemple d'excelabo.net (macro Ce lien n'existe plus qui est exactement ce que je veux faire) me déclenche une erreur 9 indice hors sélection (en rouge la partie surlignée par VBA editor). Je l'ai copiée-collée tel quelle !
Pour info, j'ai mis un "MsgBox j" avant et après la ligne fautive. Avant, j'ai bien 4 ; après, ça plante com d'hab' (donc la première boucle avec j=4 ne se fait pas)
Auriez-vous une explication sur le fait que ces exemples ne marche pas ?
Merci pour votre aide.
J'ai besoin de redimensionner un tableau dans une boucle, mais mon Excel 2010 refuse de le faire.
Après quelques recherches, voici ou j'en suis :
L'exemple de Ce lien n'existe plus déclenche une erreur de compilation avec ceci (en rouge la partie surlignée par VBA editor) :
Sub aa()
Dim intArray(10, 10, 10) As Integer
ReDim Preserve intArray(10, 10, 20)
ReDim Preserve intArray(10, 10, 15)
ReDim intArray(10, 10, 10)
End Sub
Cet autre exemple d'excelabo.net (macro Ce lien n'existe plus qui est exactement ce que je veux faire) me déclenche une erreur 9 indice hors sélection (en rouge la partie surlignée par VBA editor). Je l'ai copiée-collée tel quelle !
Sub redimarray2D()
Dim Tblo() As Integer 'l'array est declare et dimensionne de facon dynamique
Dim a As Integer
Dim i As Integer, j As Integer
ReDim Tblo(3, 3) 'au premier redimensionnement, on definit les limites des deux dimensions
'remplissage d'un array de 9 elements (3x3)
For j = 1 To 3
For i = 1 To 3
a = i * 10 + j
Tblo(i, j) = a
Next i
Next j
'on etend cet array dans une de ses dimensions pour lui ajouter 6 nouveaux elements (3x2)
For j = 4 To 5
'la boucle exterieure est celle de la dimension qui varie (la derniere de l'array)
ReDim Preserve Tblo(1 To 3, 1 To j)
MsgBox j
For i = 1 To 3
a = i * 10 + j
Tblo(i, j) = a
Next i
Next j
End Sub
Pour info, j'ai mis un "MsgBox j" avant et après la ligne fautive. Avant, j'ai bien 4 ; après, ça plante com d'hab' (donc la première boucle avec j=4 ne se fait pas)
Auriez-vous une explication sur le fait que ces exemples ne marche pas ?
Merci pour votre aide.
Dernière édition: