Collection VBA

Objet de collection Excel VBA

Dans le codage VBA, en dehors de la collection existante d'éléments sous un groupe, nous pouvons également créer nos propres groupes de collections. Dans nos nombreux articles, nous avons parlé des variables d'objet et dans ce tutoriel, nous allons parcourir l'objet de collection VBA en détail.

Si vous avez parcouru notre article précédent «VBA Arrays», cela vous sera beaucoup plus facile à comprendre. Les tableaux sont utilisés pour regrouper les variables sous un même toit, de même, Collection est également utilisé pour stocker un groupe de variables.

Les collections sont utilisées pour stocker des objets. Ils sont beaucoup plus flexibles que les tableaux VBA, tandis que les tableaux ont une limite de taille fixe, mais les collections n'ont pas de limite de taille fixe à un moment donné et ne nécessitent même pas de redimensionnement manuel.

La collection VBA est très similaire au «dictionnaire VBA», mais le dictionnaire nécessite qu'une référence d'objet externe soit configurée sous la fenêtre de référence d'objet. Avec le dictionnaire VBA, nous devons définir le type de référence comme «Microsoft Scripting Runtime», mais Collection ne nécessite aucun de ces accessoires supplémentaires.

Comment créer un objet de collection dans VBA?

Pour commencer avec la collection, nous devons d'abord déclarer la variable comme «Collection».

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

Code:

 Sub Collection_Example () Dim Col As Collection End Sub 

Puisque la collection est une variable d'objet, nous devons définir la référence d'objet en créant une nouvelle instance.

Code:

 Sub Collection_Example () Dim Col As Collection Set Col = New Collection End Sub 

Désormais avec la variable, nous pouvons accéder à toutes les méthodes de collecte de la variable «Col».

Code:

 Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col. End Sub 

Avant d'utiliser ces méthodes, nous devons déclarer une variable sous forme de chaîne.

Code:

 Sub Collection_Example () Dim Col As Collection Set Col = New Collection Dim ColResult As String End Sub 

Utilisez maintenant la variable «Col» et choisissez la méthode «Ajouter».

Code:

 Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Add End Sub 

Sous la méthode Add, nous avons certains paramètres. Supposons que nous stockions les noms de marques mobiles avec leur prix de vente moyen sur le marché.

Sous Article, l'argument entre le prix du mobile.

Code:

 Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Add Item: = 15000, End Sub 

Ensuite, sous Argument clé , entrez le nom de la marque mobile.

Code:

 Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" End Sub 

Maintenant, pour la variable «ColResult», nous allons stocker le résultat de la variable objet «Col».

Code:

 Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col (End Sub 

Lorsque vous ouvrez la parenthèse de la variable «Col», nous pouvons voir l'argument comme Index pour cet argument, nous devons fournir la valeur de l'argument clé de la méthode d'ajout de Collection, c'est-à-dire le nom de la marque mobile.

Code:

 Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") End Sub 

Maintenant, montrons le résultat dans la boîte de message dans VBA.

Code:

 Sub Collection_Example () Dim Col As Collection Set Col = New Collection Col.Add Item: = 15000, Key: = "Redmi" ColResult = Col ("Redmi") MsgBox ColResult End Sub 

Ok, nous avons terminé lorsque nous exécutons le code, nous devrions voir le prix de la marque mobile «Redmi».

Meilleure compréhension des paramètres clés et des éléments

Je suis sûr qu'il n'est pas facile de comprendre les paramètres de l'objet Collection. Laissez-moi vous expliquer avec un exemple simple.

Imaginez que vous ayez un menu de fruits avec leur nom et le prix des fruits. Supposons que vous recherchez le prix du fruit «pomme» par le nom du fruit.

Afin de rechercher le prix du fruit, nous devons mentionner le nom du fruit, c'est-à-dire dans la collection Langue VBA Le nom du fruit est la clé et le prix du fruit est «Article».

C'est comme appliquer la fonction RECHERCHEV ou RECHERCHEH, en fonction de la valeur de recherche, nous allons extraire les données requises de la base de données. Ici, la valeur de recherche est Key et le résultat est Item.

Exemple avancé

Imaginez que vous êtes gérant de magasin dans l'un des magasins de détail et que vous êtes responsable de la gestion des requêtes des clients. Une de ces requêtes client est une enquête sur le prix du produit.

Vous devez permettre au client de rechercher le prix du produit avec des informations complètes. De même, vous devez afficher le message en cas d'absence de données. Vous trouverez ci-dessous l'exemple de code qui présentera la boîte de saisie devant l'utilisateur et il devra entrer le nom du produit qu'il recherche.Si le produit est présent dans la collection, il affichera le prix du produit mentionné ou bien il le sera. affichez le message "Le produit que vous recherchez n'existe pas".

Code:

 Sub Collection_Example2() Dim ItemsCol As Collection Dim ColResult As String Set ItemsCol = New Collection ItemsCol.Add Key:="Apple", Item:=150 ItemsCol.Add Key:="Orange", Item:=75 ItemsCol.Add Key:="Water Melon", Item:=45 ItemsCol.Add Key:="Mush Millan", Item:=85 ItemsCol.Add Key:="Mango", Item:=65 ColResult = Application.InputBox(Prompt:="Please Enter the Fruit Name") If ItemsCol(ColResult)  "" Then MsgBox "The Price of the Fruit " & ColResult & " is : " & ItemsCol(ColResult) Else MsgBox "Price of the Fruit You are Looking for Doesn't Exists in the Collection" End If End Sub