Excel filtrer lignes dotées d'une cell rouge

Fermé
Alaingab - 2 sept. 2008 à 23:35
 Alaingab - 9 sept. 2008 à 17:27
Bonjour,

Sur une feuille Excel (Office 2003) j'ai inscrit 3 mfc pour visualiser 2 niveaux d'alertes.
je souhaites savoir si il est possible de filtrer leurs seuils critiques- uniquement en fonction de la couleur de fond (rouge) qui s'active dans une cel quand les critères sont remplis- afin d'editer par la suite, une liste recapitulative des lignes qui croisent, disons en col " E", cette couleur?

Que ce soit par le filtre ou le tri impossible d'y parvenir et le VB... I'dont know!


Merci A++
A voir également:

8 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 685
2 sept. 2008 à 23:51
bonjour

Avec 2003, tu ne peux pas filtrer cela car comme le nom l'indique, les mfc ne sont qu'un format.

La seule façon de retrouver les lignes concernées c'est de leur appliquer les formules de la mfc.
0
wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 243
2 sept. 2008 à 23:56
Bonjour

arf, grillé par gbinforme
je precise neanmoins l'idée

tes couleur sont issues de MFC, donc générée par des formules
dans une colonne supplémentaire, tu remet ces formule pour avoir un resultat
1 pour la premiere codition
2 pour la 2eme
3 pour la derniere
0 si pas de selection

ensuite un simple filtre automatique te selectionnera tes lignes
0
Bonjour Wilfried,

Merci pour ta réponse mais le filtre auto ne peux s'appliquer, en l'occurence les cell sous mfc, ou se colorise les alertes, font partie integrante du calcul, elles contiennent un résultat chiffré (decomptage des jours). Je ne peux non plus me référer au filtrage d'un trop grand nombre de conditions dans toutes les mfc que j'ai appliqué et qui varies aussi sur une même source (libéllé)
Donc, quand quand j'applique ce mode de filtre (quit à effectuer un report sur une nouvelle col) cela ne s'opere pas au niveau de la couleur de fond que je souhaites filtrer.

Apparamment, d'après les excelentes réponses que je reçois de ce sympatique forum je peux m'attendre à un éventuel miracle.

Ma cordiale salutation Wilfried ainsi qu'à Gbinforme qui ta grillé!
0
wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 243
5 sept. 2008 à 06:32
re:

Excel 2003, veut dire : 3 MFC maximum par cellule, ce ne fait pas beaucoup de conditions !

une petite précision, Les Formats conditionnels n'affectent en aucun cas le format de la cellule, ils fonctionnent comme un papier peint, mais ne change pas le mur (si tu retire une MFC, ton format de cellule de base redevient visible). le cellule n'etant pas affectée, on ne peut tester l'état de la cellule

je n'ai pas dit que ce n'etait pas possible, par macro c'est faisable (tres compliqué mais faisable)

tu peux aussi le faire par formule (Beaucoup plus facilement) en reprenant dans une seule cellule tes 3 formules de MFC et en leur donnant un resultat different

exemple : =Si((FormuleMFC1)=VRAI;1;SI((FormuleMFC2)=VRAI;2;SI((FormuleMFC3)=VRAI;3;0)))
0
Bonjour,

Merci tu me simplifie vraiment la vie !

Dans le processus, je ne vois toujours pas comment une fois tous les « Vrais triés » faire interpreter qu’il faut copier les lignes entières (dans une plage respective placée dans une autre feuille (Alertes)


La création de 2 plages dans une nouvelle feuille pour recevoir la copie des lignes (selon donc les états vrais).

Toutefois, quand je dis que j’ai beaucoup de conditions je ne parle pas de la limite imposée par le modul mfc mais des critères conditionnels - propres à chaque ligne et qui peuvent varier pour un même libellé.

Tu me dis si je me trompe (bien sûr.. ce n’est pas formel !)

Pour simplifier, si au lieu de re-saisir ou copier/coller chaque contenu des mfc, une condition très élargie pourrais prendre en compte toutes celles paramétrées (en col « K ») Il faudrait que les affichages ; mfc2 (Alert oranges) et mfc3 (Alert rouges) puissent s’établir dans une plage respective. Disons : Nouvelle feuille/ « A3 ; R15 » pour mfc3 (rouges)
Nouvelle feuille/ « A18 ; R45 » pour mfc2 (oranges)



=SI(Kn<0,1)=VRAIS : MFC1 Condition commune de toutes les lignes, il sagît de l’extinction d’alerte (pas de format)

Puis au lieu de préciser en fonction de la ligne correpondante ;

=SI(Fn=30<101)=VRAIS : MFC2 La valeur de la cell est : Comprise entre 30 et 100 ( format motif orange)

=SI(Fn=101<300)=VRAIS : MFC3 La valeur de la cell est : Comprise entre 100 et 300 (format motif rouge)

C’est vraiment grossier car cela ne répond vraiment pas à toutes les conditions d’alertes mais je n’ai pas le choix si ce n’est peut-être de les reprendre à partir d’un tableau ?- Si seulement on pouvait opérer à partir d’une couleur ce serait bat ! Je suis convancu que cela est possible avec son code, son adresse mais pas touche aux sources.

Ma bonne salutation



Alaingab
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 243
7 sept. 2008 à 07:29
re:

Voici une fonction (ecrite facon macro) qui permet de connaitre de n° de la MFC qui est appliquée sur la cellule

Function quelle_MFC(cellule As Range) As Byte
    Dim fc As FormatCondition, F1, F2
    Dim c As Range, num As Byte, q As Byte
    Set c = Cells.Find(Empty)
    cellule.Select
    num = 0: q = 0
    For Each fc In Selection.FormatConditions ' on scrutte toute les MFC
        num = num + 1
        c.FormulaLocal = fc.Formula1: F1 = c ' Si c'est une formule, mise en place de cette formule dans une cellule, resultat Vrai ou Faux
        If fc.Type = xlCellValue Then ' si le type de MFC est : La valeur de la cellule (ce n'est pas une formule)
            Select Case fc.Operator
                Case xlBetween, xlNotBetween:
                    c.FormulaLocal = fc.Formula2: F2 = c
                    If fc.Operator = xlBetween Then
                        If cellule >= F1 And cellule <= F2 Then q = 1
                        If fc.Operator = xlNotBetween Then If ActiveCell < F1 Or ActiveCell > F2 Then q = 1
                    End If
            Case xlEqual
                If ActiveCell = F1 Then q = 1
            Case xlGreater
                If ActiveCell > F1 Then q = 1
            Case xlGreaterEqual
                If ActiveCell >= F1 Then q = 1
            Case xlLess
                If ActiveCell < F1 Then q = 1
            Case xlLessEqual
                If ActiveCell <= F1 Then q = 1
            Case xlNotEqual
                If ActiveCell <> F1 Then q = 1
            End Select
        Else
            If F1 = True Then q = 1
        End If
        If q = 1 Then
            quelle_MFC = num
            Exit For
        End If
    Next fc
    
    c.ClearContents

End Function



attention, cette fonction ne peut fonctionner qui si elle est utilisée par une Macro, elle plante si elle est utilisée directement sur une feuille à cause le la ligne suivante
Cellule.select
et ce n'est pas la peine de chercher à l'enlever, ce select est Obligatoire

maintenant il suffit d'une simple boucle associée à un bouton pour faire la copie des données selon la MFC appliquée

il serait neanmoins plus simple de faire parvenir ton classeur avec quelques exemple, sans données confidentielles
0
Bonjour,


Voilà un morceau de grille de ma base de données et dessous un double tableau, que je devrais placer dans une autre feuille pour y transférer les alertes correspondantes - sans les perdre de ma grille de base-
J'ai mis qlqs commentaires mais sur des étiquettes mais je doute + que fortement que cela te soit utile si ce n'est pour qlqs nano sds.

https://www.cjoint.com/?jiaRjHK1qH

Ma bonne salutation

Alaingab
0
wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 243
8 sept. 2008 à 08:08
re:

Ton fichier pose un probleme, certaine fonctions (menu) sont déconnectées, de plus, j'ai voulu voir le Code VBA, pour remttre en etat mes menus pour travailler sur le classeur, ton code est protégé
je ne peux donc pas travailler sur ton classeur
0
Bonjour Wilfried,


Je suis confus pour la gêne que je t'ai occasionné, en effet une bizarrerie se produit quand je mets mon classeur en partage... des fonctions se désactivent !?

J'ai poutant aussi désactivé mon passe ( superflu) pour permettre toutes les manips sur un fichier test.

Comme des maj Windows s'opéraient (sp3) -est-ce lié?
Je vais voir pour essayer la nouvelle version Office 2007 mais c'est un peu cheros pour ma bourse.


Merci pour ton dévouement, j'espère que tu ne m'en veux pas trop de ces misères.

Ma très cordiale salutation.


Alaingab
0