Dans cet article, nous allons créer une macro pour extraire des valeurs uniques de la plage définie.

Les données brutes pour cet exemple se composent d’entrées en double de noms de pays dans la plage A7: A21.

ArrowMain

Nous avons créé une macro «FindUniqueValues» pour extraire des valeurs uniques de la plage définie. Cette macro peut être exécutée en cliquant sur le bouton «Soumettre». Avant de cliquer sur le bouton «Soumettre», nous devons spécifier l’adresse de la plage qui contient des données en double dans la cellule H9 et l’adresse de la destination où la sortie doit apparaître.

ArrowOutput

Explication logique

La macro «FindUniqueValues» prend deux objets de plage comme paramètres d’entrée.

Le premier paramètre définit la plage qui contient les données dupliquées et le second paramètre définit la position de la cellule de départ qui contiendra la sortie. Cette macro ne peut pas être appelée directement car nous devons spécifier les paramètres, nous avons donc créé une deuxième macro «MacroRunning» pour appeler la macro.

La macro «MacroRunning» appelle la macro «FindUniqueValues» avec le paramètre saisi par l’utilisateur.

Explication du code

SourceRange.AdvancedFilter Action: = xlFilterCopy, _ CopyToRange: = TargetCell, Unique: = True La méthode AdvancedFilter de l’objet Range est utilisée pour filtrer ou copier les données de la plage en fonction de certains critères. Pour copier uniquement les valeurs uniques, nous devons définir le paramètre Unique de AdvancedFilter sur True.

Veuillez suivre ci-dessous pour le code

Option Explicit

Sub FindUniqueValues(SourceRange As Range, TargetCell As Range)

'Using advance filter for extacting unique items in the source range

SourceRange.AdvancedFilter Action:=xlFilterCopy, _

CopyToRange:=TargetCell, Unique:=True



End Sub

Sub MacroRunning()

'Calling FindUniqueValues macro

Call FindUniqueValues(Range(Range("H9").Value), Range(Range("H10").Value))

End Sub

Si vous avez aimé ce blog, partagez-le avec vos amis sur Facebook et Facebook.

Nous aimerions avoir de vos nouvelles, faites-nous savoir comment nous pouvons améliorer notre travail et le rendre meilleur pour vous. Écrivez-nous à [email protected]