Supprimer les doublons dans Excel VBA - Macros Excel faciles

Table des matières

Ci-dessous, nous examinerons un programme en Excel VBA ce supprime les doublons.

Situation:

Dans la colonne A, nous avons 10 nombres. Nous voulons supprimer les doublons de ces numéros et placer les numéros uniques dans la colonne B.

1. Tout d'abord, nous déclarons quatre variables. toAdd de type Boolean, uniqueNumbers de type Integer, i de type Integer et j de type Integer.

Dim toAdd As Boolean, uniqueNumbers As Integer, i As Integer, j As Integer

2. Ensuite, nous écrivons le premier nombre de la colonne A dans la colonne B puisque le premier nombre est toujours 'unique'.

Cellules(1, 2).Valeur = Cellules(1, 1).Valeur

3. Nous initialisons deux variables. Nous venons d'ajouter un nombre à la colonne B, nous initialisons donc uniqueNumbers avec la valeur 1. Nous définissons toAdd sur True en supposant que le prochain nombre doit également être ajouté (ce n'est pas nécessairement vrai bien sûr).

Numéros uniques = 1
toAdd = True

Nous devons déterminer si le deuxième numéro est « unique » ou non. Cela peut être fait de manière très simple. Seulement si le numéro n'est pas déjà dans la colonne B, le deuxième numéro doit être ajouté à la colonne B.

4. Nous devons également vérifier cela pour le troisième numéro, le quatrième numéro, etc. Nous commençons une boucle For Next pour cela.

Pour i = 2 à 10

5. Vient maintenant la partie la plus importante du programme. Si le deuxième nombre est égal à l'un des nombres de la colonne B (pour l'instant nous n'avons qu'un seul nombre unique), nous définissons surAjouter à Faux car dans ce cas nous ne voulons pas ajouter ce nombre ! (il n'est pas 'unique'). Pour le moment, uniqueNumbers est toujours égal à 1, mais uniqueNumbers peut être une liste entière. Pour vérifier toute cette liste, nous avons besoin d'une autre boucle For Next. Encore une fois : si le nombre que nous voulons ajouter est égal à l'un des nombres de cette liste, toAdd sera défini sur False et le nombre ne sera pas ajouté. Ajoutez les lignes de code suivantes :

Pour j = 1 à uniqueNumbers
Si Cellules(i, 1).Valeur = Cellules(j, 2).Valeur Alors
toAdd = False
Fin si
j suivant

6. Seulement si toAdd est toujours True et n'est pas défini sur False, Excel VBA doit ajouter le numéro à la colonne B. En même temps, nous incrémentons uniqueNumbers de 1 car nous avons maintenant un numéro unique de plus. Les lignes de code suivantes font le travail :

Si toAdd = True Alors
Cells(uniqueNumbers + 1, 2).Valeur = Cells(i, 1).Value
UniqueNumbers = UniqueNumbers + 1
Fin si

7. Enfin, nous définissons Add to True en supposant que le numéro suivant (troisième numéro) doit être ajouté. Encore une fois, ce n'est pas nécessairement vrai.

toAdd = True

8. N'oubliez pas de boucler la boucle.

Ensuite je

9. Placez votre macro dans un bouton de commande et testez-la.

Résultat:

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave