|
|
|
|
Bonjour,
Je cherche à faire une petite macro pour effacer des colorées ( je suis débutant vba :) ) . En fait, j'ai d'abord utilisé la mise en forme conditionnel valeurs en double ( excel 2007 ) ce qui m'a colorié tous les doublons. Le fichier contient presque 10 000 données, je souhaite donc faire une macro pour effacer tous les doublons . La macro est simple puisque il s'agit simplement de balayer la premiére colonne et d'effacer la ligne entiere lorsque la cellule a été colorée par la mise en forme conditionnel. J’ai fait un test avec cette boucle :
Sub Test_color()
For ligne = 30 To 2 Step -1
Set cellule = Sheets("feuil1").Cells(ligne, 1)
If cellule.Interior.ColorIndex <> xlNone Then cellule.EntireRow.Delete
Next
End Sub
Le problème est qu’Excel m’efface toutes les lignes, il ne va pas chercher seulement les cellules colorées.
Merci d'avance pour votre aide
Configuration: Windows XP Firefox 3.0.8
Bonjour
Sub epurer()
Dim triage As Collection
Dim nbre As Long, cptr As Long
'ActiveSheet.Unprotect
Application.ScreenUpdating = False
nbre = Application.CountA(Range("A:A"))
Set triage = New Collection
On Error Resume Next
cptr = 1
While cptr <= nbre
'le parametre Key devant être unique, un doublon provoquerait une erreur _
le gestionnaire étant activé, Tonton Vba ignore l'erreur et passe à la cellule suivante _
s'il n'y a pas pas d'erreur le numéro d'item de la collection triage est alors implémenté
triage.Add Cells(cptr, 1).Value, CStr(Cells(cptr, 1).Value)
cptr = cptr + 1
Wend
On Error GoTo 0
nbre = triage.Count
' Ecrit la zone épurée (ici dans des cellules mais peut-etre adapté à des listbox et combobox)
Range("A:A").ClearContents
cptr = 1
While cptr <= nbre
Cells(cptr, 1) = triage(cptr)
cptr = cptr + 1
Wend
'ActiveSheet.Protect
'libère le pointeur
set triage= nothing
End Sub
Cordialement, Michel |
Bonjour, comment va Michel ?
|
Je vais même préciser quelque chose. Le but initial de ma manœuvre était de supprimer les doublons dans la colonne 1 mais la recherche des doublons se faisait dans la colonne 2, donc ensuite à terme je voulais supprimer toute cellule qui avait un doublon. maintenant avec votre macro je met tout en une seule colonne, je fais un tri et il me supprime les doublons . Cependant ce qu'il faudrait c'est que, des que excel trouve un doublon il supprime les 2.
|