VBA ReDim

Déclaration Excel VBA ReDim

L' instruction VBA Redim est similaire à l'instruction dim, mais la différence est qu'elle est utilisée pour stocker ou allouer plus d'espace de stockage ou pour réduire l'espace de stockage qu'une variable ou un tableau a avec elle, maintenant il y a deux aspects importants utilisés avec l'instruction Preserve, si préserver est utilisé avec cette instruction, il crée un nouveau tableau avec une taille différente et si préserver n'est pas utilisé avec cette instruction, alors il change simplement la taille du tableau de la variable courante.

Les tableaux sont une partie importante du codage VBA. En utilisant des tableaux, nous pouvons stocker plus d'une valeur dans la même variable que nous avons définie. Tout comme la façon dont nous déclarons la variable en utilisant le mot «Dim», nous devons également déclarer le nom du tableau en utilisant «Dim».

Afin de déclarer le nom du tableau, nous devons d'abord identifier le type de tableau que nous allons définir. Dans les tableaux, nous avons 5 types.

  1. Réseau statique
  2. Réseau dynamique
  3. Réseau unidimensionnel
  4. Réseau bidimensionnel
  5. Réseau multidimensionnel

Dans le tableau statique d'Excel, nous déciderons de la valeur inférieure et de la valeur supérieure du tableau bien à l'avance lors de la déclaration de la variable. Par exemple, regardez l'exemple ci-dessous.

Code:

 Sub ReDim_Example1 () Dim MyArray (1 To 5) As String End Sub 

Ici MyArray est le nom du tableau qui peut contenir la valeur de 1 à 5. MyArray peut contenir 5 résultats différents comme celui ci-dessous.

Code:

 Sub ReDim_Example1 () Dim MyArray (1 To 5) As String MyArray (1) = "Hi" MyArray (2) = "Good" MyArray (3) = "Morning" MyArray (4) = "Avoir un" MyArray (5) = "Nice Day" End Sub 

Tableau dynamique avec déclaration ReDim

Mais dans le tableau dynamique, ce n'est pas le cas, nous ne déciderons pas de la valeur inférieure et de la valeur supérieure bien à l'avance, mais nous définissons simplement le nom du tableau et attribuons le type de données.

 Sub ReDim_Example1 () Dim MyArray () As String End Sub 

Afin de rendre le nom du tableau dynamique, nous devons d'abord le déclarer avec le mot «Dim», mais ne pas décider de la taille du tableau bien à l'avance. Nous nommons simplement un tableau avec des valeurs vides entre parenthèses (). Lorsque le tableau n'inclut pas la taille, il est traité comme un tableau dynamique.

Dim MyArray () As String

Au moment où vous mentionnez la taille du tableau entre parenthèses, il devient un tableau statique. Dim MyArray (1 to 5) As String

Dans le tableau dynamique, nous redimensionnons toujours la taille du tableau en utilisant le mot «ReDim» dans la ligne suivante du code.

ReDim MyArray (1 à 6) en tant que chaîne

Toute valeur stockée dans le nom du tableau dans les étapes précédentes, c'est-à-dire en utilisant l'instruction «Dim» est nulle, et la taille que nous avons déclarée en utilisant «ReDim» devient la nouvelle taille du tableau.

Exemples d'utilisation de l'instruction VBA Redim

Vous pouvez télécharger ce modèle Excel VBA ReDim ici - Modèle Excel VBA ReDim

Exemple 1

Jetez un œil à l'exemple de l'utilisation pratique de l'instruction «ReDim». Suivez les étapes ci-dessous pour appliquer «ReDim».

Étape 1: Créez d'abord un nom de macro.

Étape 2: Déclarez un nom de tableau sous forme de chaîne.

Code:

 Sub ReDim_Example1 () Dim MyArray () As String End Sub 

Étape 3: Utilisez maintenant le mot «Redim» et attribuez la taille du tableau.

Code:

 Sub ReDim_Example1 () Dim MyArray () As String ReDim MyArray (1 To 3) End Sub 

Étape 4: Alors maintenant, le nom du tableau «MyArray» peut contenir jusqu'à 3 valeurs ici. Attribuez la valeur à ces 3 tableaux comme ci-dessous.

Code:

 Sub ReDim_Example1 () Dim MyArray () As String ReDim MyArray (1 To 3) MyArray (1) = "Welcome" MyArray (2) = "to" MyArray (3) = "VBA" End Sub 

Ainsi, le premier tableau est égal au mot «Welcome», le deuxième tableau est égal au mot «to» et le troisième tableau est égal au mot «VBA».

Étape 5: stockez maintenant ces valeurs de tableau dans des cellules.

Code:

 Sub ReDim_Example1 () Dim MyArray () As String ReDim MyArray (1 To 3) MyArray (1) = "Welcome" MyArray (2) = "to" MyArray (3) = "VBA" Range ("A1"). Value = MyArray (1) Range ("B1"). Value = MyArray (2) Range ("C1"). Value = MyArray (3) End Sub 

Étape 6: Si vous exécutez ce code, nous devrions avoir ces valeurs dans les cellules A1, B1 et C1 respectivement.

Exemple # 2 - Redimensionner la taille du tableau tout en se souvenant des anciennes valeurs.

Une fois le nom du tableau attribué aux valeurs, nous pouvons également redimensionner à tout moment de la procédure en utilisant le mot «ReDim Preserve».

Supposons que vous ayez déjà déclaré un nom de tableau et attribué des valeurs à ce nom de tableau comme celui ci-dessous.

Vous souhaitez maintenant augmenter la longueur du tableau de 2, c'est-à-dire 5. Dans ce cas, nous pouvons utiliser le mot VBA «ReDim Preserve» pour redimensionner la longueur du tableau afin de mémoriser également les anciennes valeurs.

Code:

 Sub ReDim_Example2 () Dim MyArray () As String ReDim MyArray (3) MyArray (1) = "Welcome" MyArray (2) = "to" MyArray (3) = "VBA" ReDim Preserve MyArray (4) MyArray (4) = Plage "Caractère 1" ("A1"). Valeur = MyArray (1) Range ("B1"). Value = MyArray (2) Range ("C1"). Valeur = MyArray (3) Range ("D1"). Valeur = MyArray (4) End Sub 

Nous pouvons maintenant attribuer deux valeurs supplémentaires au tableau.

Code:

 Sub ReDim_Example2 () Dim MyArray () As String ReDim MyArray (3) MyArray (1) = "Welcome" MyArray (2) = "to" MyArray (3) = "VBA" ReDim Preserve MyArray (4) MyArray (4) = Plage "Caractère 1" ("A1"). Valeur = MyArray (1) Range ("B1"). Value = MyArray (2) Range ("C1"). Valeur = MyArray (3) Range ("D1"). Valeur = MyArray (4) End Sub 

Maintenant, stockez ces valeurs dans des cellules.

Code:

 Sub ReDim_Example2 () Dim MyArray () As String ReDim MyArray (3) MyArray (1) = "Welcome" MyArray (2) = "to" MyArray (3) = "VBA" ReDim Preserve MyArray (4) MyArray (4) = Plage "Caractère 1" ("A1"). Valeur = MyArray (1) Range ("B1"). Value = MyArray (2) Range ("C1"). Valeur = MyArray (3) Range ("D1"). Valeur = MyArray (4) End Sub 

Maintenant, exécutez la macro et voyez ce qui se passe

Nous avons donc le nouveau mot dans la cellule D1.

La raison pour laquelle nous devons utiliser le mot «préserver» parce que le tableau doit se souvenir des anciennes valeurs du tableau dans la procédure.

Au moment où vous ignorez le mot «préserver», il ne se souviendra plus des anciennes valeurs.

Choses à retenir ici

  • ReDim can only hold the last value of the array, not the many values. For example, we cannot use this code “ReDim Preserve MyArray(4 to 5)”, this will throw the error.
  • We cannot ReDim static arrays. The moment you assign the size of the array inside the parenthesis it becomes a static array.
  • Using ReDim we cannot change the data type. The array can hold whatever the data type we have assigned while declaring the array.