Trouver des valeurs uniques à l’aide de VBA dans Microsoft Excel
Dans cet article, nous allons créer une fonction personnalisée pour rechercher des valeurs uniques dans la plage définie.
Les données brutes pour cet exemple se composent d’entrées en double du nom de pays dans la plage A8: A21.
Explication logique
Nous avons créé une fonction personnalisée «UniqueItem» pour extraire les valeurs uniques de la plage. Cette fonction prend deux paramètres en entrée.
Le premier paramètre est la plage qui se compose des données en double et le second paramètre définit le numéro d’index d’une valeur unique dans la collection unique.
Cette fonction renvoie la valeur unique de la plage en fonction du numéro d’index. Le deuxième paramètre est un paramètre facultatif, si le deuxième paramètre n’est pas spécifié, la fonction renvoie le nombre de valeur unique dans la plage définie.
Si la valeur définie pour le deuxième paramètre est supérieure au nombre de valeurs uniques dans la plage, la dernière valeur unique est renvoyée par la fonction.
Explication du code
En cas d’erreur, reprendre suivant pour chaque valeur de cellule dans InputRange CUnique.Add CellValue.Value, CStr (CellValue.Value)
[_GoBack] # Next On Error GoTo 0 Le code ci-dessus est utilisé pour créer un objet de collection qui contiendra une valeur unique de la plage définie. Les instructions «On Error» sont utilisées pour gérer les erreurs, car lorsque le code essaie de mettre des valeurs en double dans la collection, la collection génère une erreur.
Veuillez suivre ci-dessous pour le code
Option Explicit Function UniqueItem(InputRange As Range, Optional ItemNo As Integer = 0) As Variant Dim CellValue As Range Dim CUnique As New Collection Dim UCount As Integer On Error Resume Next 'Adding unique items to collection from defined range For Each CellValue In InputRange CUnique.Add CellValue.Value, CStr(CellValue.Value) Next On Error GoTo 0 'Getting count of unique item in the collection UCount = CUnique.Count If ItemNo = 0 Then 'Returning count of unique item UniqueItem = UCount ElseIf ItemNo <= UCount Then 'Returning unique value based on item number UniqueItem = CUnique(ItemNo) Else 'Returning last unique value UniqueItem = CUnique(UCount) End If End Function
Si vous avez aimé ce blog, partagez-le avec vos amis sur Facebook et Facebook.
Nous serions ravis de vous entendre, faites-nous savoir comment nous pouvons améliorer notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]