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.

ArrowRawData

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.

ArrowOutput

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]