image

Dans nos articles précédents, nous avons appris à extraire des valeurs uniques d’une plage en utilisant une combinaison de différentes fonctions Excel. Bien qu’ils fonctionnent à merveille, mais ils sont également complexes, on ne peut le nier. Si vous effectuez fréquemment l’extraction de valeurs uniques, ces formules peuvent vous fatiguer. Eux aussi rendent le fichier lourd et lent.

Ainsi, dans cet article, nous allons apprendre à créer une fonction définie par l’utilisateur qui prend une plage comme argument et ne renvoie que des valeurs uniques de cette plage. Vous pouvez directement copier le code dans votre fichier et commencer à l’utiliser immédiatement.

Code VBA pour une fonction unique:

Function UNIQUES(rng As Range) As Variant()

Dim list As New Collection

Dim Ulist() As Variant

'Adding each value of rng to the collection.

On Error Resume Next

For Each Value In rng

'here value and key are the same. The collection does not allow duplicate keys hence only unique values will remain.

list.Add CStr(Value), CStr(Value)

Next

On Error GoTo 0

'Defining the length of the array to the number of unique values. Since the array starts from 0, we subtract 1.

ReDim Ulist(list.Count - 1, 0)

'Adding unique value to the array.

For i = 0 To list.Count - 1

Ulist(i, 0) = list(i + 1)

Next

'Printing the array

UNIQUES = Ulist

End Function

Copiez l’éditeur codeto VB d’Excel.

Utilisation de la fonction UNIQUE

La fonction ci-dessus est un link: / custom-functions-in-vba-create-vba-function-to-return-array [fonction de tableau multi-cellules définie par l’utilisateur]. Cela signifie que vous devez sélectionner la plage dans laquelle vous souhaitez que la liste unique soit imprimée, puis écrire la formule et appuyer sur la combinaison de touches CTRL + MAJ + ENTRÉE.

Dans le gif ci-dessus, nous avons une liste de pays. Il y a maintenant de nombreux pays en double sur la liste. Nous voulons obtenir la liste des pays uniques uniquement.

Pour ce faire, sélectionnez une plage dans laquelle vous souhaitez la liste unique. Maintenant, écrivez cette formule:

=UNIQUES(A2:B7)

Appuyez sur la combinaison de touches CTRL + MAJ + ENTRÉE. Et c’est fait. Toutes les valeurs uniques sont répertoriées dans la plage sélectionnée.

Remarque: * Si la plage que vous avez sélectionnée est supérieure à la valeur unique, ils afficheront l’erreur # N / A. Vous pouvez l’utiliser comme indication de la fin des valeurs uniques. Si vous ne voyez pas # N / A à la fin de la liste, cela signifie qu’il peut y avoir plus de valeurs uniques .

Explication du code

J’ai utilisé deux concepts majeurs de VBA dans cette fonction UD.

lien: / excel-macros-et-vba-comment-utiliser-vba-collections-dans-excel [Collections]

et link: / custom-functions-in-vba-create-vba-function-to-return-array [fonction de tableau définie par l’utilisateur]. Tout d’abord, nous avons utilisé une collection pour obtenir les valeurs uniques de la plage fournie.

for Each Value In rng

list.Add CStr(Value), CStr(Value) Next

next

Comme nous ne pouvons pas imprimer une collection sur la feuille, nous l’avons transférée dans un autre tableau UList.

for i = 0 To list.Count - 1

Ulist(i, 0) = list(i + 1) Next

next

Remarque: * L’indexation du tableau VBA commence à 0 et l’indexation de la collection commence à 1. C’est pourquoi nous avons soustrait 1 pour le tableau dans la boucle for et ajouté 1 à l’indexation de la collection de listes.

En fin de compte, nous avons imprimé ce tableau sur la feuille.

Il existe une fonction UNIQUE qui n’est pas disponible pour Excel 2016 qui fait la même chose. Cette fonction est disponible dans Excel 2019. Seuls les membres du programme d’initié ont accès à cette fonction. En utilisant cette technique, vous pouvez montrer au bureau d’être en avance sur la SP.

Alors oui les gars, voici comment créer une fonction qui extrait simplement des valeurs uniques. J’espère avoir été suffisamment explicatif pour vous faire comprendre cela. Si vous avez des questions spécifiques concernant cette question ou toute autre question liée à Excel VBA, posez-les dans la section commentaires ci-dessous.

Cliquez sur le lien ci-dessous pour télécharger le fichier de travail:

`link: /wp-content-uploads-2019-12-UNIQUES-function.xls [__ fonction UNIQUES]

Articles liés:

lien: / custom-functions-in-vba-create-vba-function-to-return-array [Créer une fonction VBA pour renvoyer le tableau] | Apprenez à créer une fonction de tableau définie par l’utilisateur qui renvoie un tableau.

link: / excel-array-formulas-arrays-in-excel-formula [Tableaux dans Excel Formul] | Apprenez quels tableaux sont dans Excel.

link: / vba-user-defined-function [Comment créer une fonction définie par l’utilisateur via VBA] | Apprenez à créer des fonctions définies par l’utilisateur dans Excel `link: / custom-functions-userdefined-functions-from-other-workbooks-using-vba-in-microsoft-excel [Using a User Defined Function (UDF) from another workbook using VBA dans Microsoft Excel] `| Utilisez la fonction définie par l’utilisateur dans un autre classeur d’Excel `link: / custom-functions-return-error-values-from-user-defined-functions-using-vba-in-microsoft-excel [Renvoie les valeurs d’erreur de l’utilisateur fonctions utilisant VBA dans Microsoft Excel] `| Découvrez comment vous pouvez renvoyer des valeurs d’erreur à partir d’une fonction définie par l’utilisateur