Comment obtenir la longueur d’un tableau en utilisant VBA ?
En VBA, obtenir la longueur d’un tableau signifie compter le nombre d’éléments que vous avez dans ce tableau. Pour cela, vous devez connaître l’élément le plus bas et l’élément le plus haut. Donc, pour obtenir cela, vous pouvez utiliser les fonctions UBOUND et LBOUND qui renvoient respectivement la limite supérieure et la limite inférieure.
En dehors de cela, vous pouvez également utiliser COUNTA qui est une fonction de feuille de calcul. Et dans ce didacticiel, nous verrons les deux méthodes afin que vous puissiez utiliser l’une d’entre elles à votre convenance.
Étapes pour obtenir la taille d’un tableau
Ici, nous avons un tableau qui contient une liste de mois et la quantité de ventes pour chaque mois.
- Assurez-vous d’avoir un tableau déclaré correctement avec des lignes et des colonnes.
- Après cela, deux autres variables (car nous avons un tableau à deux dimensions) pour stocker les limites du tableau.
- Ensuite, vous devez utiliser une formule dans laquelle vous devez utiliser la fonction Ubound pour obtenir la limite supérieure, puis Lbound pour obtenir la limite inférieure du tableau.
- Comme vous avez un tableau à deux dimensions, vous devez être lié pour les deux dimensions et définir cette valeur sur les variables.
- À la fin, multipliez les longueurs que vous avez obtenues de Ubound et Lbound comme limite supérieure et inférieure.
Voici le code complet.
Dim yearSales(1 To 12, 1 To 2) As Integer
Dim iCount1 As Integer, iCount2 As Integer
iCount1 = UBound(yearSales, 1) - LBound(yearSales, 1) + 1
iCount2 = UBound(yearSales, 2) - LBound(yearSales, 2) + 1
MsgBox iCount1 * iCount2
Remarque : Vous devez vous demander si nous avons un total de 13 lignes dans le tableau que j’ai partagé avec vous au début de l’article.
Mais nous avons utilisé un tableau de 13 lignes car la première ligne était un titre. Et ici, nous avons utilisé une fonction IF STATEMENT et ISEMPTY pour vérifier si le tableau déclaré ne contient aucun élément.
Dim yearSales(1 To 12, 1 To 2) As Integer
Dim iCount1 As Integer, iCount2 As Integer
If IsEmpty(yearSales) = 0 Then
MsgBox "This array has zero elements."
Else
iCount1 = UBound(yearSales, 1) - LBound(yearSales, 1) + 1
iCount2 = UBound(yearSales, 2) - LBound(yearSales, 2) + 1
MsgBox "This array has " & iCount1 * iCount2 & " element(s)."
Utilisation de COUNTA pour obtenir la longueur du tableau
Comme vous le savez, un tableau est un ensemble d’éléments structurés de manière unidimensionnelle ou multidimensionnelle et vous pouvez utiliser la fonction COUNTA ( fonction de feuille de calcul ) pour compter ces éléments en une seule fois.
Dans le code suivant, vous avez utilisé le même tableau que vous avez déclaré précédemment, puis utilisé une variable pour stocker le nombre d’éléments renvoyés par la fonction.
Et comme vous pouvez le voir, le résultat qu’il a renvoyé est 24, c’est le nombre total d’éléments que nous avons dans le tableau.
Dim yearSales(1 To 12, 1 To 2) As Integer
iCount = WorksheetFunction.CountA(yearSales)
MsgBox iCount
Il y a une chose dont vous devez prendre soin, cette méthode ne sera pas idéale à utiliser dans toutes les situations, il est donc toujours bon d’utiliser la méthode dont nous avons discuté plus tôt.
Vous pouvez également écrire un code pour vérifier d’abord si le tableau déclaré n’est pas vide.
Dim yearSales(1 To 12, 1 To 2) As Integer
If IsEmpty(yearSales) = 0 Then
MsgBox "This array has zero elements."
Else
iCount = WorksheetFunction.CountA(yearSales)
MsgBox "This array has " & iCount & " element(s)."