Trie sur cellules sans couleurs.

jose.carreira

XLDnaute Junior
Bonjour

Avec quelques difficultés pour l’élaboration d’une macro, je sollicite votre aide.

Sur une feuille Excel de plusieurs colonnes et plusieurs lignes (A1 :K122), je colorie les cellules des colonnes C, D et G sur trois critères, Vert pour les items ok, Orange pour les Items à surveiller et rouge pour les items non Ok.

Il me reste une série de lignes qui ne sont pas trié ou catégorisée.
J’utilise cette ligne de code.
Code:
     ActiveSheet.Range("$A$1:$K$122").AutoFilter Field:=3, Criteria1:=RGB(0, _
        255, 0), Operator:=xlFilterCellColor

Mais cela ne fonctionnes pas toujours.

Comment puis-je filtrer mes colonnes C, D et G pour n’afficher que les lignes dont il n’y a pas de couleur, donc le restant des cellules à trier.

Ci joint les code complet.
Code:
Sub Trie_des_données()
 ' Recherche si l'onglet existe
    For n = 1 To Sheets.Count
    If Sheets(n).Name = "FS" Then
        trouve = True
        Exit For
        End If
        Next n
        
        If trouve Then
'Set fe = Sheets("FT")
    Sheets("FS").Select

' Maquette et MNU
    With Range("C:C,D:D,G:G")
    .Replace What:="Maquette", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=True
    .Replace What:="MNU", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=True
        
    With Application.ReplaceFormat.Interior
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent5
        .TintAndShade = 0.599963377788629
        .PatternTintAndShade = 0
    End With
    End With

' PCP
    With Range("C:C,D:D,G:G")
        .Replace What:="pcp", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=True
    With Application.ReplaceFormat.Interior
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    End With

' Coût 0
        With Range("C:C,D:D,G:G")
            .Replace What:="Cout 0", Replacement:="", LookAt:=xlPart, _
                SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=True
            .Replace What:="Coût 0", Replacement:="", LookAt:=xlPart, _
                SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=True
            .Replace What:="Coût zero", Replacement:="", LookAt:=xlPart, _
                SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=True
            .Replace What:="Coût zéro", Replacement:="", LookAt:=xlPart, _
                SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=True
            .Replace What:="Cout zéro", Replacement:="", LookAt:=xlPart, _
                SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=True
            .Replace What:="Cout zero", Replacement:="", LookAt:=xlPart, _
                SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                ReplaceFormat:=True
            With Application.ReplaceFormat.Interior
                .PatternColorIndex = xlAutomatic
                .ThemeColor = xlThemeColorAccent5
                .TintAndShade = 0.599963377788629
                .PatternTintAndShade = 0
            End With
        End With
' Crée filtres
        If Not ActiveSheet.AutoFilterMode Then Range("A1:K1").AutoFilter ' Créer filtre ci absent
        
' MEP des filtres
        
    ActiveSheet.Range("$A$1:$K$122").AutoFilter Field:=3, Criteria1:=RGB(0, _
        255, 0), Operator:=xlFilterCellColor
    ActiveSheet.Range("$A$1:$K$122").AutoFilter Field:=7, Criteria1:=RGB(0, _
        255, 0), Operator:=xlFilterCellColor
    ActiveSheet.Range("$A$1:$K$122").AutoFilter Field:=4, Criteria1:=RGB(0, _
        255, 0), Operator:=xlFilterCellColor

    Derlig = Cells.Find("*", , , , xlByRows, xlPrevious).Row

    MsgBox "Filtrée sur les colonnes ( C, D et G)" & Chr(10) & "Valider les autres données"
    MsgBox "Il reste (" & Range("B1:B" & Derlig).SpecialCells(xlCellTypeVisible).Count - 1 & ") solutions a trier"

    Else
    MsgBox "pas se solution à trier" & Chr(10) & "Traitement abandoner"
    End If
End Sub

Merci d’avance
 

Discussions similaires

Réponses
1
Affichages
125

Statistiques des forums

Discussions
312 209
Messages
2 086 271
Membres
103 168
dernier inscrit
isidore33