Comment trier les cellules par couleur dans 1 colonne?

fredalva

XLDnaute Nouveau
Bonjour,
j'ai une colonne d' adresses A que je compare à une colonne d'adresses B (afin d'éliminer les doublons).Les données de la colonne A qui sont également présentes dans la colonne B ont un fond de cellule rouge et les autres vert.
Question:comment regrouper toutes les cellules rouges pour pouvoir les éliminer plus facilement?

D'avance merci
 

pierrejean

XLDnaute Barbatruc
Re : Comment trier les cellules par couleur dans 1 colonne?

bonjour fredalva

Bienvenue sur XLD

cette macro ne regroupera pas les cellules mais elle les supprimera

Code:
Sub efface_rouge()
For n = 1 To Range("A65536").End(xlUp).Row
   If Range("A" & n).Interior.ColorIndex = 3 Then
    Range("A" & n).Delete Shift:=xlUp
   End If
Next n
 
End Sub

edit:

comme le fait judicieusement remarquer Wilfried :) ci dessous , si la couleur est obtenue par MFC ce code ne fonctionnera pas
 
Dernière édition:

Tibo

XLDnaute Barbatruc
Re : Comment trier les cellules par couleur dans 1 colonne?

Bonsoir à tous,

Avec utilisation d'une macro fonction d'excel 4 : LIRE.CELLULE

Insertion - Nom - Définir :

Nom : couleur

Fait référence à : =LIRE.CELLULE(63;Feuil1!$A1)

ensuite en B1 : = couleur

à recopier vers le bas et on peut ensuite faire un tri.

Voir fichier exemple joint

@+
 

Pièces jointes

  • tri_couleur.zip
    1.6 KB · Affichages: 79
  • tri_couleur.zip
    1.6 KB · Affichages: 84
  • tri_couleur.zip
    1.6 KB · Affichages: 82

fredalva

XLDnaute Nouveau
Re : Comment trier les cellules par couleur dans 1 colonne?

Bonjour et merci pour vos réponses rapides.
Voici les formules utilisées pour comparer les valeurs des 2 colonnes et mettre le fond en couleur:
=RECHERCHEV(A1;$B:$B;1;0)=A1 couleur ROUGE

et

=ET(A1<>"";ESTNA(RECHERCHEV(A1;$B:$B;1;0))) couleur VERT

Dans ce cas la macro pour éliminer les rouges va t'elle fonctionner?

Fred
 

Tibo

XLDnaute Barbatruc
Re : Comment trier les cellules par couleur dans 1 colonne?

Bonsoir,

Une première analyse de tes formules :

il est possible de les simplifier :

La 1ère recherche dans la colonne B la présence de A1. On peut la remplacer par :

=NB.SI($B:$B;A1)>0

Pour la 2ème formule, A1 ne doit pas être vide et n'est pas présent dans la colonne B. On peut alors remplacer par :

=ET(A1<>"";NB.SI($B:$B;A1)=0)

En colonne C, on pourrait faire l'addition des 2 tests :

=(NB.SI($B:$B;A1)>0)+(ET(A1<>"";NB.SI($B:$B;A1)=0))

Ca va retourner 1 ou 0 et donc possibilité de faire le tri.

Je te laisse essayer

Bonne soirée

@+

Edit : Je suis moins sûr de ma formule tout d'un coup (pas testée du fait de pas de fichier). Plus simple : =SI(NB.SI($B:$B;A1)>0);1;SI(ET(A1<>"";NB.SI($B:$B;A1)=0);2;0))

@+
 
Dernière édition:

wilfried_42

XLDnaute Barbatruc
Re : Comment trier les cellules par couleur dans 1 colonne?

re:

Ce sont bien des mises en forme conditionnelles, la particularité des MFC c'est que les couleurs n'affectent pas reellement les cellules, donc on ne peut tester des cette facon les couleurs

Il y a un post sur le forum au sujet de compter sur de MFC mais il faut le retrouver, il y a une procedure qui permet de travailler sur les couleurs definie dans des MFC

Bon courrage
 

pierrejean

XLDnaute Barbatruc
Re : Comment trier les cellules par couleur dans 1 colonne?

re a tous

a tester (basée sur la formule utilisée pour colorer en rouge

Code:
Sub efface_rouge()
 For n = Range("A65536").End(xlUp).Row To 1 Step -1
    Set c = Range("B1:B" & Range("B65536").End(xlUp).Row).Find(Range("A" & n), LookIn:=xlValues, lookat:=xlWhole)
    If Not c Is Nothing Then
       Range("A" & n).Delete Shift:=xlUp
    End If
Next n
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 067
Membres
104 016
dernier inscrit
Mokson