K
klip89
Guest
Bonjour,
je suis sous excel 2000
j'ai une macro pour supprimer les doublons
voici ce qu'elle fait
j'ai par exemple les mots suivants dans une colonne
maman
maman
maman
papa
papa
oui
non
non
Ma macro me supprime tous les mots qui sont présents plus d'une fois donc dans l'exemple donné elle ne garde qu'un seul mot oui
le souci c'est qu'elle est très lourde
y a t'il moyen de l'alléger
de plus y a t'il moyen qu'elle me reclasse tous les mots en haut de la colonne sans que je sois obliger de le faire manuellement en cliquant sur A-> Z ?
d'avance merci de me dire si c'est possible, ci-dessous la macro et si possible de m'aider pour la modification car je suis très mauvaise en macro
Sub virer_doublons()
Dim maPlage As Range
Range(Selection, Selection.End(xlDown)).Select
Set maPlage = Selection
For i = 1 To maPlage.Cells.Count
a = maPlage.Cells(i).Value
If a = "" Then
GoTo line1
End If
For j = i + 1 To maPlage.Cells.Count
b = maPlage.Cells(j).Value
If a = b Then
maPlage.Cells(j).Value = ""
maPlage.Cells(i).Value = ""
End If
Next j
line1:
Next i
End Sub
je suis sous excel 2000
j'ai une macro pour supprimer les doublons
voici ce qu'elle fait
j'ai par exemple les mots suivants dans une colonne
maman
maman
maman
papa
papa
oui
non
non
Ma macro me supprime tous les mots qui sont présents plus d'une fois donc dans l'exemple donné elle ne garde qu'un seul mot oui
le souci c'est qu'elle est très lourde
y a t'il moyen de l'alléger
de plus y a t'il moyen qu'elle me reclasse tous les mots en haut de la colonne sans que je sois obliger de le faire manuellement en cliquant sur A-> Z ?
d'avance merci de me dire si c'est possible, ci-dessous la macro et si possible de m'aider pour la modification car je suis très mauvaise en macro
Sub virer_doublons()
Dim maPlage As Range
Range(Selection, Selection.End(xlDown)).Select
Set maPlage = Selection
For i = 1 To maPlage.Cells.Count
a = maPlage.Cells(i).Value
If a = "" Then
GoTo line1
End If
For j = i + 1 To maPlage.Cells.Count
b = maPlage.Cells(j).Value
If a = b Then
maPlage.Cells(j).Value = ""
maPlage.Cells(i).Value = ""
End If
Next j
line1:
Next i
End Sub