Tableau dynamique dans Excel VBA
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.
Placez un bouton de commande sur votre feuille de calcul et ajoutez les lignes de code suivant:
-
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.
-
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))
-
Nous savons maintenant que la taille du tableau et nous pouvons redimensionner elle. Ajoutez la ligne de code suivant:
ReDim numbers(size)
-
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
-
Nous proposons le dernier élément du tableau en utilisant un MsgBox.
MsgBox numbers(size)
-
Quittez l’éditeur Visual Basic, puis cliquez sur le bouton de commande sur la feuille.
Résultat:
-
Maintenant, pour voir clairement pourquoi on appelle cela un tableau dynamique, ajouter un numéro à la colonne A.
-
Cliquez à nouveau sur le bouton de commande.
Conclusion: Excel VBA a changé automatiquement la taille de ce tableau dynamique.
-
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:
Le tableau est vide.
-
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: