Si la taille de votre tableau augmente et que vous ne voulez pas fixer la taille du tableau, vous pouvez utiliser le mot-clé ReDim. Excel VBA modifie alors la taille du tableau automatiquement.

Ajouter quelques chiffres à la colonne A.

Dynamic Array in Excel VBA

Placez un bouton de commande sur votre feuille de calcul et ajoutez les lignes de code suivant:

  1. Tout d’abord, nous déclarons le tableau des numéros nommés. déclarer également deux variables de type entier. Taille du nom et un nommé i.

Dim numbers() As Integer, size As Integer, i As Integer

Remarque: le tableau n’a pas encore la taille. le nombre, la taille et i sont choisies au hasard ici, vous pouvez utiliser tous les noms. N’oubliez pas de se référer à ces noms dans le reste de votre code.

  1. Ensuite, on détermine la taille du tableau et la stocker dans la taille variable. Vous pouvez utiliser la fonction de feuille de calcul NBVAL pour cela. Ajoutez la ligne de code suivant:

size = WorksheetFunction.CountA(Worksheets(1).Columns(1))
  1. Nous savons maintenant que la taille du tableau et nous pouvons redimensionner elle. Ajoutez la ligne de code suivant:

ReDim numbers(size)
  1. Ensuite, nous initialize chaque élément du tableau. Nous utilisons une boucle.

For i = 1 To size

numbers(i) = Cells(i, 1).Value

Next i
  1. Nous proposons le dernier élément du tableau en utilisant un MsgBox.

MsgBox numbers(size)
  1. Quittez l’éditeur Visual Basic, puis cliquez sur le bouton de commande sur la feuille.

Résultat:

Last Element of the Array

  1. Maintenant, pour voir clairement pourquoi on appelle cela un tableau dynamique, ajouter un numéro à la colonne A.

Add Number

  1. Cliquez à nouveau sur le bouton de commande.

Dynamic Array Result

Conclusion: Excel VBA a changé automatiquement la taille de ce tableau dynamique.

  1. Lorsque vous utilisez le mot-clé ReDim, vous effacer toutes les données existantes actuellement stockées dans le tableau. Par exemple, ajoutez les lignes de code suivant au code créé précédemment:

ReDim numbers(3)

MsgBox numbers(1)

Résultat:

Without Preserve

Le tableau est vide.

  1. Lorsque vous souhaitez conserver les données dans le tableau existant lorsque vous redimensionner, utilisez le mot-clé Preserve.

ReDim Preserve numbers(3)

MsgBox numbers(1)

Résultat:

With Preserve