Tableaux Excel VBA : types et utilisation avec exemple

⚡ Résumé intelligent

Les tableaux Excel VBA permettent de stocker un groupe de valeurs apparentées de même type de données sous un nom unique, accessible par un index. Cette page explique les tableaux statiques et dynamiques, les tableaux à une, deux et plusieurs dimensions, la syntaxe de déclaration et propose un exemple pratique de chargement de boissons.

  • 📦 Concept de tableau : Un emplacement mémoire unique et nommé qui contient plusieurs valeurs du même type de données, séparées par un index.
  • (I.e. Avantages : Les tableaux regroupent les données connexes, réduisent le nombre de variables et accélèrent la récupération et le tri des données.
  • 📌 Tableau statique : Déclaré avec une taille fixe, par exemple Dim ArrayMonth(12) As String, lorsque le nombre d'éléments est connu.
  • (I.e. Tableau dynamique : Déclaré vide avec Dim ArrayMonth() et dimensionné ultérieurement à l'aide de ReDim lorsque le nombre d'éléments est inconnu.
  • (I.e. Dimensions : Un tableau utilise un, deux ou plusieurs index pour modéliser des listes simples, des tables ou des données à plusieurs niveaux.
  • 🧪 Exemple concret : Un bouton de commande charge quatre noms de boissons à partir d'un tableau dans des cellules de feuille de calcul en utilisant Sheet1.Cells.

Tableaux Excel VBA

Qu’est-ce qu’un tableau VBA ?

Un tableau est défini comme un emplacement mémoire capable de stocker plusieurs valeurs. Les valeurs doivent toutes être du même type de données. Supposons que vous souhaitiez stocker une liste de vos boissons préférées dans une seule variable. Vous pouvez utiliser un tableau VBA pour ce faire.

En utilisant un tableau, vous pouvez faire référence aux valeurs associées portant le même nom. Vous pouvez utiliser un index ou un indice pour les distinguer. Les valeurs individuelles sont appelées éléments du tableau Excel VBA. Ils sont contigus depuis l’indice 0 jusqu’à la valeur d’indice la plus élevée.

Ce tutoriel suppose que vous utilisez Microsoft Excel version 2013. Les connaissances s'appliquent toujours aux autres versions de Microsoft Exceller également.

Quels sont les avantages des tableaux ?

Avant d'écrire du code pour les tableaux, il est utile de comprendre pourquoi il est pertinent d'utiliser des tableaux. Voici quelques avantages offerts par les fonctions de tableau VBA.

  1. Regroupez les données logiquement liées – disons que vous souhaitez stocker une liste d'étudiants. Vous pouvez utiliser une seule variable de tableau comportant des emplacements distincts pour les catégories d'élèves, par exemple jardin d'enfants, primaire, secondaire, lycée, etc.
  2. Les tableaux facilitent l'écriture de code maintenable. Pour les mêmes données logiquement liées, cela vous permet de définir une seule variable, au lieu de définir plusieurs variables.
  3. Meilleures performances : une fois qu'un tableau a été défini, il est plus rapide de récupérer, trier et modifier les données.

Types de tableaux dans VBA

VBA prend en charge deux types de tableaux, à savoir :

  • Statique – Ces types de tableaux ont un nombre fixe prédéterminé d’éléments pouvant être stockés. On ne peut pas changer la taille du type de données d'un tableau statique. Celles-ci sont utiles lorsque vous souhaitez travailler avec des entités connues telles que le nombre de jours dans une semaine, le sexe, etc.Par exemple: Dim ArrayMonth(12) sous forme de chaîne
  • Dynamique – Ces types de tableaux n’ont pas de nombre fixe prédéterminé d’éléments pouvant être stockés. Ceux-ci sont utiles lorsque vous travaillez avec des entités dont vous ne pouvez pas prédéterminer le nombre.Par exemple: Dim ArrayMonth() comme variante

Une fois que vous savez quel type correspond à vos données, l'étape suivante consiste à définir la syntaxe de déclaration pour chaque type.

Syntaxe pour déclarer des tableaux

Tableaux statiques

La syntaxe pour déclarer STATIC les tableaux sont les suivants :

Dim arrayName (n) as datatype

ICI,

Code Action
Type de données Dim arrayName (n)
  1. Il déclare une variable tableau appelée arrayName avec une taille de n et un type de données. La taille fait référence au nombre d'éléments que le tableau peut stocker.

Tableaux dynamiques

La syntaxe pour déclarer DYNAMIQUE les tableaux sont les suivants :

Dim arrayName() as datatype
ReDim arrayName(4)

ICI,

Code Action
Type de données Dim arrayName ()
  1. Il déclare une variable tableau appelée arrayName sans spécifier le nombre d'éléments
Nom du tableau ReDim (4)
  1. Il spécifie la taille du tableau une fois le tableau défini.

Dimensions du tableau

Un tableau peut être à une dimension, à deux dimensions ou multidimensionnel.

  • Une dimension: Dans cette dimension, le tableau n'utilise qu'un seul index. Par exemple, un certain nombre de personnes de chaque âge.
  • Deux dimensions: Dans cette dimension, le tableau utilise deux index. Par exemple, un certain nombre d'élèves dans chaque classe. Il nécessite le nombre de classes et le nombre d'élèves dans chaque classe.
  • Multidimensionnel: Dans cette dimension, le tableau utilise plus de deux index. Par exemple, les températures pendant la journée. ( 30, 40, 20).

Comment utiliser un tableau dans Excel VBA

Maintenant que la théorie est abordée, nous pouvons mettre en pratique les tableaux dans un classeur Excel. Nous allons créer une application simple qui remplira une feuille Excel avec les données d'une variable de type tableau. Dans cet exemple VBA, nous allons réaliser les opérations suivantes.

  • Créer un nouveau Microsoft Classeur Excel et enregistrez-le en tant que classeur Excel prenant en charge les macros (*.xlsm)
  • Ajouter un bouton de commande au classeur
  • Définir les propriétés du nom et de la légende du bouton de commande
  • Programmation du VBA qui remplit la feuille Excel

Faisons cet exercice étape par étape,

Étape 1 – Créer un nouveau classeur

  1. Ouvrez Microsoft Excel
  2. Enregistrez le nouveau classeur sous VBA Arrays.xlsm

Étape 2 – Ajouter un bouton de commande

À noter: Cette section suppose que vous êtes familier avec le processus de création d'une interface dans Excel. Si vous n'êtes pas familier, lisez le tutoriel Contrôle de formulaire Excel VBA et contrôle ActiveX. Il vous montrera comment créer l'interface

  1. Ajouter un bouton de commande à la feuille

Utiliser un tableau dans Excel VBA

  1. Définissez la propriété name sur cmdLoadBeverages
  2. Définissez la propriété caption sur Load Beverages

Votre interface graphique devrait maintenant être la suivante

Utiliser un tableau dans Excel VBA

Étape 3 – Enregistrez le fichier

  1. Cliquez sur le bouton Enregistrer sous
  2. Choisissez Classeur Excel prenant en charge les macros (* .xlsm) comme indiqué dans l'image ci-dessous

Utiliser un tableau dans Excel VBA

Étape 4 – Écrivez le code

Nous allons maintenant écrire le code de notre application

  1. Faites un clic droit sur le bouton Charger les boissons et sélectionnez Afficher le code
  2. Ajoutez le code suivant à l'événement click de cmdLoadBeverages
Private Sub cmdLoadBeverages_Click()
    Dim Drinks(1 To 4) As String

    Drinks(1) = "Pepsi"
    Drinks(2) = "Coke"
    Drinks(3) = "Fanta"
    Drinks(4) = "Juice"

    Sheet1.Cells(1, 1).Value = "My Favorite Beverages"
    Sheet1.Cells(2, 1).Value = Drinks(1)
    Sheet1.Cells(3, 1).Value = Drinks(2)
    Sheet1.Cells(4, 1).Value = Drinks(3)
    Sheet1.Cells(5, 1).Value = Drinks(4)
End Sub

ICI,

Code Action
Dim Drinks (1 à 4) sous forme de chaîne
  • Il déclare une variable de tableau appelée Drinks. Le premier indice du tableau est 1 et le dernier indice du tableau est 4.
Boissons(1) = « Pepsi »
  • Attribue la valeur Pepsi au premier élément du tableau. L'autre code similaire fait de même pour les autres éléments du tableau.
Feuille1.Cellules(1, 1).Valeur = « Mes boissons préférées »
  • Écrit la valeur Mes boissons préférées dans l'adresse de cellule A1. Sheet1 fait référence à la feuille et Cells(1,1) fait référence à la ligne numéro 1 et à la colonne 1 (B)
Sheet1.Cells(2, 1).Value = Boissons(1)
  • Écrit la valeur de l'élément du tableau avec l'index 1 dans la ligne numéro deux de la colonne 1

Tester notre application

Une fois le code en place, la dernière étape consiste à exécuter le bouton et à vérifier que le tableau remplit bien la feuille. Sélectionnez l'onglet Développeur et assurez-vous que le mode Création est désactivé. Pour le vérifier, le bouton aura un fond blanc et non un fond coloré (verdâtre). (Voir l'image ci-dessous)

Tester une application dans Excel VBA

Cliquez sur le bouton Charger les boissons

Vous obtiendrez les résultats suivants

Tester une application dans Excel VBA

Téléchargez Excel contenant le code ci-dessus

Téléchargez le fichier Excel ci-dessus. Code

FAQ

Un tableau statique a une taille fixe définie lors de sa déclaration, par exemple Dim Arr(12). Un tableau dynamique est déclaré vide avec Dim Arr() et redimensionné ultérieurement à l'aide de ReDim lorsque le nombre d'éléments n'est pas connu à l'avance.

La fonction ReDim définit ou modifie la taille d'un tableau dynamique après sa déclaration. L'ajout du mot-clé Preserve, comme dans ReDim Preserve Arr(10), conserve les valeurs existantes lors du redimensionnement ; sans Preserve, toutes les valeurs stockées sont effacées.

Utilisez les fonctions LBound et UBound. LBound renvoie l'indice le plus bas et UBound l'indice le plus élevé. Le nombre d'éléments est égal à UBound(Arr) moins LBound(Arr) plus un, ce qui fonctionne aussi bien pour les tableaux statiques que dynamiques.

Oui. Les assistants IA comme Copilot génèrent des déclarations de tableaux et des boucles à partir d'une simple requête, par exemple pour charger dix noms de produits dans une colonne. Le développeur colle ensuite le code dans l'éditeur et le teste sur une copie du classeur.

Oui. Les assistants IA lisent l'erreur « Indice hors limites » et le code, puis indiquent l'indice qui dépasse les limites du tableau et suggèrent une solution, comme ajuster la taille de ReDim ou le compteur de boucle. Le développeur applique la modification et effectue un nouveau test.

Résumez cet article avec :