Filtre sur couleur

dominique3829

XLDnaute Junior
Bonjour à tous
Nouvelle saison et nouveau problème !
Voilà j'ai un petit souci avec un filtre, j'ai déjà eu des discussions à ce sujet,
le problème maintenant est le suivant :
dans mon tableau je voudrais faire un tri en vba sur la colonne "A"

j'ai fouillé le forum presque toute la journée d'hier mais sans résultat.

Serait-il possible d'utiliser une instruction du genre :
Selection.AutoFilter Field:=i, Criteria1:="<>" & RGB(255, 255, 255)
pour faire apparaitre les lignes en vert ou en rouge ou les lignes sans couleur?

merci pour votre aide !
 

Pièces jointes

  • filtre avec couleur.xls
    39.5 KB · Affichages: 112
  • filtre avec couleur.xls
    39.5 KB · Affichages: 113
  • filtre avec couleur.xls
    39.5 KB · Affichages: 120

dominique3829

XLDnaute Junior
Re : Filtre sur couleur

Bonjour à tous,

Peux-tu tester ce fichier ?

Il faut choisir une ligne dans le code...
Dans le classeur à l'ouverture tu auras les Rouges par :
Code:
    ActiveSheet.Range("G:G").AutoFilter Field:=i, Criteria1:=RGB(255, 0, 0)
Je réitère mon propos : il est plus simple de passer le ColorIndex :p

A+ à tous

OK pour ColorIndex ! comment l'utiliser?
comme ceci ?:
ActiveSheet.Range("G:G").AutoFilter Field:=i, Criteria1:= ColorIndex....
 

JCGL

XLDnaute Barbatruc
Re : Filtre sur couleur

Bonjour à tous,

Il est déjà en place dans mon premier code et dans le code l'ami PJ :)

JCGL :

Code:
Option Explicit

Sub Tri()
    Dim X As Long
    Cells.EntireRow.Hidden = False
    For X = 2 To Range("F65536").End(xlUp).Row
        If Range("F" & X).Interior.ColorIndex <> Range("G1")  Then Range("F" & X).EntireRow.Hidden = True
    Next X
    Range("G1").Select
End Sub
PJ :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$G$1" Then
        If Target = "Tout" Then
            Rows.Hidden = False
            Exit Sub
        End If
        Application.ScreenUpdating = False
        Coul = Array(3, 4, 40, xlNone)
        Couleur = Array("Rouge", "Vert", "Brun", "Incolore")
        For n = LBound(Couleur) To UBound(Couleur)
            If Target = Couleur(n) Then LaCouleur = Coul(n)
        Next n
        Rows.Hidden = False
        For n = 2 To Range("A65536").End(xlUp).Row
            If Range("A" & n).Interior.ColorIndex <> LaCouleur Then
                Rows(n).Hidden = True
            End If
        Next n
    End If
    Application.ScreenUpdating = True
    Range("G1").Select
End Sub

Voir les #2 et #3

A+ à tous
 

Discussions similaires

Statistiques des forums

Discussions
312 668
Messages
2 090 739
Membres
104 643
dernier inscrit
adriano22