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:
Très pédagogique et efficace. Merci