Retour des éléments uniques à l’aide VBA dans Microsoft Excel
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.
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.
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]