Supprimer les doublons avec Excel VBA

Nous examinerons un programme dans Excel VBA qui supprime les doublons.

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

1. Premièrement, nous déclarons quatre variables. Ajouter de type Boolean, NombreUnique de type Integer, i de type Entier et j de type Entier.

Dim to Add As Boolean, NombreUnique As Integer, i As Integer, j As Integer

2. Ensuite, nous écrivons le premier numéro de la colonne A dans la colonne B car le premier numéro est touours «unique».

Cells(1, 2).Value = Cells(1, 1).Value

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

uniqueNumbers = 1

toAdd = True

Nous devons déterminer si le deuxième nombre est «unique» ou non. Cela peut être fait de manière très simple. Ce n’est que si le numéro ne figure pas déjà dans la colonne B que 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.

For i = 2 To 13

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 (jusqu’à présent, nous n’avons qu’un seul numéro unique), nous définissons sur toAdd à Faux car dans ce cas, nous ne voulons pas ajouter ce nombre! (ce n’est pas «unique»). Pour le moment, uniqueNumbers est toujours égal à 1, mais uniqueNumbers peut être une liste complète. 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:

For j = 1 To uniqueNumbers

    If Cells(i, 1).Value = Cells(j, 2).Value Then

        toAdd = False

    End If

Next j

6. Uniquement 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:

If toAdd = True Then

    Cells(uniqueNumbers + 1, 2).Value = Cells(i, 1).Value

    uniqueNumbers = uniqueNumbers + 1

End If

7. Enfin, nous définissons toAdd 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 fermer la boucle.

Next i

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

 Résultat:

S’abonner
Notifier de
1 Commentaire
le plus ancien
le plus récent le plus populaire
Inline Feedbacks
Voir tous les commentaires

Très pédagogique et efficace. Merci

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

1
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x