Tableau Multidimensionnel VBA (Tableaux 2D)

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

David Gagnon

Last updated on mars 12, 2023

Ce tutoriel traite des tableaux bidimensionnels et multidimensionnels dans VBA.

Tableau Multidimensionnel (Tableaux 2D)

Les tableaux multidimensionnels sont des tableaux qui contiennent plus d’une dimension, généralement deux ou trois dimensions, mais les tableaux peuvent avoir jusqu’à 32 dimensions.

Déclarer un Tableau 2D

Pour créer un tableau à plus d’une dimension, utilisez des virgules pour définir chaque dimension distincte :

Dim intTab(2,3) as Integer

Remplissage d’un Tableau 2D

Le code ci-dessous remplit un tableau 2D, puis remplit les lignes et les colonnes d’une feuille de calcul avec les valeurs du tableau.

Sub Populer2D()
'déclaration du tableau 2D
   Dim intA(2, 3) As Integer
'déclaration des variables
   Dim rg As Integer
   Dim col As Integer
'populer le tableau
   intA(0, 0) = 45
   intA(0, 1) = 50
   intA(0, 2) = 55
   intA(0, 3) = 60
   intA(1, 0) = 65
   intA(1, 1) = 70
   intA(1, 2) = 75
   intA(1, 3) = 80
   intA(2, 0) = 85
   intA(2, 1) = 90
   intA(2, 2) = 95
   intA(2, 3) = 100
'boucler dans le tableau et remplir la plage Excel
   For rg = 0 To 2
      For col = 0 To 3
         Cells(rg + 1, col + 1).Value = intA(rg, col)
      Next col
    Next rg
End Sub

Votre feuille de calcul Excel devrait alors être remplie comme suit.

vba 2D array

Remplissage d’un Tableau 2D à Partir de Données Excel

Le code ci-dessous permet de remplir un tableau 2D à partir d’une feuille de calcul Excel, puis de remplir une autre feuille avec les données.

Sub Populer2D()
'déclaration des feuilles de calcul
   Dim fc_Source As Worksheet
   Dim fc_Destination As Worksheet
'déclaration du tableau
   Dim fcData(10, 2) As Variant
'déclaration des variables
   Dim rg as Integer
   Dim col As Integer
'définition de la feuille source
Set fc_Source = Worksheets("Feuil1")
'obtient les information de la feuille source et rempli le tableau
   For rg = LBound(fcData, 1) To UBound(fcData, 1)
      For col = LBound(fcData, 2) To UBound(fcData, 2)
         fcData(rg, col) = fc_Source.Range("A2").Offset(rg, col).Value
      Next col
   Next rg
'définition de la feuille de destination
   Set fc_Destination = Worksheets("Feuil2")
'remplissage de la feuille de destination à partir du tableau
   For rg = LBound(fcData, 1) To UBound(fcData, 1)
      For col = LBound(fcData, 2) To UBound(fcData, 2)
         fc_Destination.Range("A1").Offset(rg,col).Value = fcData(rg, col)
      Next col
   Next rg
End Sub

Redimensionnement à l’Aide de ReDim et Re-Dim Preserve

Vous pouvez redimensionner un tableau à l’aide de ReDim (en savoir plus).

Sub Redimensionner2D()
'déclaration du tableau
   Dim varTableau() as Variant
'déclaration de la dimension du tableau
   ReDim varTableau(1, 2)
   varTableau(0, 0) = "Mélanie Dupont"
   varTableau(0, 1) = "Jacques Roy"
   varTableau(0, 2) = "Stéphanie Tremblay"
   varTableau(1, 0) = "Comptable"
   varTableau(1, 1) = "Secrétaire"
   varTableau(1, 2) = "Médecin"
'redimensionnement du tableau
   ReDim varTableau(0, 1)
'remplissage du tableau 
   varTableau(0, 0) = "Mélanie Dupont"
   varTableau(0, 1) = "Jacques Roy"
End Sub

Lorsque vous redéclarez le tableau, vous perdez toutes les données qu’il contenait auparavant, sauf si vous utilisez l’instruction ReDim Preserve.

Sub Redimensionner2D()
'déclaration du tableau 
   Dim varTableau() as Variant
'déclaration de la dimension du tableau
   ReDim varTableau(1, 2)
   varTableau(0, 0) = "Mélanie Dupont"
   varTableau(0, 1) = "Jacques Roy"
   varTableau(0, 2) = "Stéphanie Tremblay"
   varTableau(1, 0) = "Comptable"
   varTableau(1, 1) = "Secrétaire"
   varTableau(1, 2) = "Médecin"
'redimensionnement du tableau
   ReDim Preserve varTableau(1, 3)
 'remplissage du tableau avec les valeurs additionnelles
   varTableau(0, 3) = "Rob Barnes"
   varTableau(1, 3) = "Plombier"
End Sub

Vous ne pouvez redimensionner que la dernière dimension d’un tableau si vous souhaitez conserver les données d’origine dans le tableau avec Re-Dim Preserve.

exemple erreur redimensionnement derniere dimension tableau2d

Lorsque vous cliquez sur debug, l’erreur sera mise en évidence et montrera que la première dimension du tableau n’est pas la même que la première dimension lorsque la taille du tableau a été déclarée à l’origine.

exemple erreur redimensionnement derniere dimension tableau2d debug

vba-free-addin

Module Complémentaire d'Exemples de Code VBA

Accédez facilement à tous les exemples disponibles sur le site.

Naviguez simplement dans le menu, cliquez, et le code sera inséré directement dans votre module. Module complémentaire .xlam.

(Aucune installation requise!)

Téléchargement gratuit

Retour aux exemples de code VBA