Excel VBA ReDim

Nous pouvons ajuster le nombre d'éléments dans un tableau via VBA Redim. Redim n'est pas une fonction, c'est un programme d'allocation dynamique de mémoire via l'instruction Redim. Lorsque nous utilisons Redim, une quantité spécifique de mémoire est réservée pour stocker les données.

Comment utiliser la déclaration VBA ReDim?

Nous verrons comment utiliser la déclaration VBA ReDim à l'aide de quelques exemples.

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

VBA ReDim - Exemple # 1

Lorsque nous utilisons Dim pour un tableau, nous ne pouvons pas modifier la valeur du magasin de données dans un tableau. Mais lorsque nous utilisons Redim, nous pouvons modifier la valeur stockée dans un tableau. Ce processus de modification du tableau est appelé redimensionnement du tableau.

Supposons que nous ayons un tableau A de 4 cellules, alors il sera défini avec;

  • Dim A (3) comme double

Comme nous pouvons le voir, toutes les cellules ont «0» comme valeur stockée. Supposons maintenant que si nous réduisons le Dim A avec des données à 3 cellules et y stockons la valeur, cela ressemblera à ce qui suit.

  • ReDim B (2) en tant que double

B (0) = 1; B (1) = 3, B (2) = -6

Cela ressemblera à;

Maintenant, si nous voulons y ajouter des cellules, nous pouvons le faire. Ensuite, il attribuera automatiquement le «0» à ces cellules. Maintenant, pour implémenter ReDim, appuyez sur Alt + F11 pour ouvrir la fenêtre VBA. Et dans le menu Insertion, sélectionnez l'option Module pour ouvrir une nouvelle fenêtre comme indiqué ci-dessous.

Ouvrez maintenant la sous-catégorie et ajoutez n'importe quel nom. Comme nous utilisons ReDim, nous avons donc nommé UsingReDim .

Code:

 Sub UsingReDim () End Sub 

Avant de définir ReDim, définissez d'abord un entier. Ici, nous l'avons défini comme «A» avec une longueur de tableau 3. Et stockons quelques valeurs dans un tableau créé de 3 cellules comme indiqué ci-dessous.

Code:

 Sub UsingReDim () Dim A (2) As Integer ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 End Sub 

Maintenant, en imprimant les valeurs stockées dans l'entier A, nous devons créer une boîte de message à l'aide de la commande MsgBox comme indiqué ci-dessous.

Code:

 Sub UsingReDim () Dim A (2) As Integer A (0) = 1 A (1) = 2 A (2) = 3 MsgBox A (0) MsgBox A (1) MsgBox A (2) End Sub 

Exécutez maintenant le code en cliquant sur le bouton de lecture ou la touche F5 comme indiqué ci-dessous.

Nous allons maintenant utiliser ReDim et il stockera plus de caractères que définis dans le tableau. Pour cela, utilisez ReDim pour l'entier défini A. Premièrement, nous allons supprimer le nombre de cellules défini de Dim. L'utilisation de la fonction Redim est la suivante:

  • ReDim A (2) est utilisé pour la matrice de cellules A (0), A (1), A (2) .
  • ReDim A (4) est utilisé pour les cellules A (0), A (1), A (2), A (3), A (4) avec deux cellules factices supplémentaires.

Code:

 Sub UsingReDim () Dim A () As Integer ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 ReDim A (4) MsgBox A (0) MsgBox A (1) MsgBox A (2) End Sub 

Une fois terminé, exécutez le code complet en cliquant sur le bouton de lecture ou en utilisant la touche F5. Une fois que nous avons exécuté le code complet, nous afficherons 3 boîtes de message, mais avec un message contenant uniquement «0», comme indiqué ci-dessous.

Ce qui est dû au fait que ReDim n'a en fait que 3 valeurs mais qu'il ne portait pas de valeurs stockées sous des entiers définis. L'utilisation de Redim uniquement ne stocke aucune valeur et y reporte les valeurs précédemment stockées. Pour appliquer la même chose, nous devons conserver les valeurs de l'entier défini A, avec l'aide de ReDim. En utilisant Preserve dans VBA, nous pouvons stocker la valeur dans ReDim. Pour cela, nous ajouterons Preserve after ReDim dans VBA Codeas ci-dessous.

Code:

 Sub UsingReDim () Dim A () As Integer ReDim A (2) A (0) = 1 A (1) = 2 A (2) = 3 ReDim Preserve A (4) MsgBox A (0) MsgBox A (1) MsgBox A (2) End Sub 

Exécutez à nouveau le code complet. Nous verrons 3 boîtes de message avec toutes les valeurs stockées comme indiqué ci-dessous.

Maintenant, vous devez vous demander pourquoi nous avons utilisé A (4) avec ReDim Preserve?

En voici l'explication. Où 1 er, 2 ème et 3 ème position du tableau est occupée avec les valeurs 1, 2 et 3 respectivement. Et les 4 ème et 5 ème positions qui représentent 3 et 4 décomptes du tableau A sont des cellules fictives. Ce qui signifie que s'il n'y a pas de données stockées en 4 e et 5 e position, il considérera automatiquement la valeur «0» et le message ne sera pas rempli.

Si nous essayons de voir les valeurs stockées aux 4 e et 5 e positions du tableau ReDim, nous devons également insérer une boîte de message pour ces 2 positions.

Code:

 Sub UsingReDim () Dim A () As Integer ReDim A (3) A (0) = 1 A (1) = 2 A (2) = 3 ReDim Preserve A (4) MsgBox A (0) MsgBox A (1) MsgBox A (2) MsgBox A (3) MsgBox A (4) End Sub 

Comme nous avons ajouté un message encadré pour les 4 e et 5 e positions sans enregistrer aucune valeur. Exécutez à nouveau le code.

Comme nous pouvons le voir dans les captures d'écran ci-dessus, pour une 4 e et 5 e position, nous avons obtenu des boîtes de message, mais la valeur s'affiche comme «0». Ce qui explique la déclaration ci-dessus. Si aucune valeur n'est définie, ReDim Preserve prendra automatiquement en compte et remplira «0» dans le reste des cellules.

VBA ReDim - Exemple # 2

Voyons maintenant comment utiliser l'instruction ReDim avec String au lieu de Integer.

Code:

 Sub UsingReDim () Dim A () As String ReDim A (3) A (0) = "Customer" A (1) = "Product" A (2) = "Product Id" ReDim Preserve A (4) MsgBox A (0 ) MsgBox A (1) MsgBox A (2) MsgBox A (3) MsgBox A (4) End Sub 

Une fois terminé, exécutez ensuite le code complet à l'aide de la touche F5 ou manuellement comme indiqué ci-dessous.

Comme nous pouvons le voir dans la capture d'écran ci-dessus, nous obtenons tous les caractères définis et stockés dans les 3 premières boîtes de message. Et dans les 4 e et 5 e cases, nous n'obtenons rien. Comme ReDim ne stocke aucune valeur s'il n'est pas défini. Pour les entiers, il se reflétera comme «0» mais avec String, il affichera uniquement les messages vides.

Avantages d'Excel VBA ReDim

  • VBA ReDim nous permet de redéfinir les valeurs de dimension.
  • Nous pouvons définir autant de tableaux dimensionnels avec une valeur nulle ou nulle et stocker les valeurs plus tard.
  • ReDim signifiant Re-Dimensioning donne la possibilité d'ajouter des nombres de tableaux de données sans augmenter la taille des données stockées.

Choses dont il faut se rappeler

  • N'oubliez pas toujours d'ajouter Preserve après ReDim dans VBA, afin qu'il stocke les dimensions précédemment utilisées.
  • Si une dimension est définie en tant que chaîne, alors toute position laissée vierge dans l'attribution des valeurs sera vide et une fois que nous l'imprimerons à l'aide de la boîte de message, elle donnera également une boîte de message vide.
  • Si nous avons défini les dimensions Dim avec 3 caractères ou valeurs de cellule, alors dans ReDim nous pouvons utiliser n'importe quel nombre de dimensions portant des valeurs déjà définies et stockées dans Dim.

Articles recommandés

Cela a été un guide pour Excel VBA ReDim. Ici, nous avons discuté de la façon d'utiliser la déclaration VBA ReDim pour supprimer des espaces ainsi que des exemples pratiques et un modèle Excel téléchargeable. Vous pouvez également consulter nos autres articles suggérés -

  1. Comment utiliser VBA On Error Statement?
  2. Format numérique en VBA
  3. Comment utiliser la fonction de recherche VBA?
  4. Fonction VBA TRIM

Catégorie: