Rechercher : dans
Par :

Vba excel pour effacer des cellules colorées

Dernière réponse le 2 jui 2009 à 17:17:04 bizoo, le 2 jui 2009 à 15:18:04 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « vba excel pour effacer des cellules colorées » dans :
[VBA] Détection de modification de cellule VoirExemple pour une MFC avec plus de 3 conditions. Private Sub Worksheet_Change(ByVal Target As Range) Dim Cel As Range For Each Cel In Target 'Adapter la/les plages. If Not Intersect(Cel, Range("B1:B30,D1:D30")) Is Nothing...
Tableur - La sélection des cellules VoirSélection de cellules Le tableur est un formidable outil pour manipuler des données. Ainsi, pour pouvoir manipuler les données il est nécessaire de disposer d'outils permettant de sélectionner rapidement toutes les cellules dont on a...

1

michel_m, le 2 jui 2009 à 16:40:33

Bonjour

sans t'occuper des MFC qui sont la conséquences des doublons que tu cherche à éliminner: on s'attaque donc aux doublons (tableau sur 1 colonne A)

essaies (réalisée ss XL<2007)

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

Répondre à michel_m

2

bizoo, le 2 jui 2009 à 16:47:35

Merci bcp, c'est un peu compliqué pour mon niveau vba mais jvais essayer.

Répondre à bizoo

3

lermite222, le 2 jui 2009 à 16:56:35

Bonjour, comment va Michel ?
bizoo : Pour ton info,
Les couleurs d'une MFC ne sont pas "visble" façilement.
pour les détecter tu peu t'inspirer

de ce lien, couleur MFC
A+ L'expérience instruit plus sûrement que le conseil. (André Gide)  
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)

Répondre à lermite222

4

bizoo, le 2 jui 2009 à 16:57:38

Je viens d'essayer, marche niquel, par contre juste une question, je voudrais que lorsque que le macro efface le doublon elle efface toute la ligne avec, seulement votre macro est un peu compliqué pour moi, je sais pas ou mettre le : cellule.entirerow.delete

merci d'avance

Répondre à bizoo

5

 bizoo, le 2 jui 2009 à 17:17:04

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.

Ex : André
André
pierre
jacques
jacques

aprés la macro il faudrait qu'il me reste seulement pierre; car lorsqu'il ya un doublon il faudrait supprimer les 2 en supprimant toute la ligne. En fait j'ai une base de donné de contact et lorsqu'il ya un doublon cela signifie que j'ai déja le contact dans mon logiciel et il ne faut pas que je le rentre 2 fois.

Je ne sais pas si je suis claire. Si vous pouviez m'aider ça serait génial et bravo pour votre premiere macro. MErci d'avance

Répondre à bizoo
Collection CommentÇaMarche.net