Filtrer en fonction des couleurs
Fermé
julia Namor
Messages postés
524
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
13 janvier 2024
-
12 déc. 2016 à 11:26
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 15 déc. 2016 à 02:12
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 15 déc. 2016 à 02:12
A voir également:
- Filtrer en fonction des couleurs
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Remettre les couleurs d'origine android ✓ - Forum Windows 10
- L'en-tête du document comporte une information qui n’apparaît pas à l'impression car elle est de couleur blanche. de quelle information s'agit-il ? ✓ - Forum Bureautique
- La boite à couleurs - Télécharger - Divers Photo & Graphisme
4 réponses
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
12 déc. 2016 à 15:52
12 déc. 2016 à 15:52
Bonjour,
à voir si c'est mieux :
Le plus efficace serait d'avoir des valeurs dans ces cellules et une colonne de synthèse pour filtrer directement dessus.
eric
à voir si c'est mieux :
Sub jaune() filtrer [C1].Interior.Color End Sub Sub rouge() filtrer [D1].Interior.Color End Sub Sub vert() filtrer [E1].Interior.Color End Sub Sub filtrer(couleur As Long) Dim pl As Range, lig As Long, col As Long Application.ScreenUpdating = False Set pl = Sheets("donnees").Range("$C$8:$X$76") pl.EntireRow.Hidden = True For lig = pl.Row To pl.Row + pl.Rows.Count For col = pl.Column To pl.Column + pl.Columns.Count If Cells(lig, col).Interior.Color = couleur Then Rows(lig).EntireRow.Hidden = False Exit For End If Next col Next lig End Sub
Le plus efficace serait d'avoir des valeurs dans ces cellules et une colonne de synthèse pour filtrer directement dessus.
eric
julia Namor
Messages postés
524
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
13 janvier 2024
33
12 déc. 2016 à 18:57
12 déc. 2016 à 18:57
Bonjour Eric
Je gagne pas mal de temps en traitement .
Les couleurs du filtre se trouvent dans une autre feuille ("Base").
J'ai transformé comme tel
j'obtiens une erreur.
"Le plus efficace serait d'avoir des valeurs dans ces cellules et une colonne de synthèse pour filtrer directement dessus.
En fait il ya des valeurs et des commentaires dans la majorité des cellules .Certaines sont vides . Mais j'ai vraiment besoin de filtrer en fonction de la couleur pour les affectations .
Merci eric
Je gagne pas mal de temps en traitement .
Les couleurs du filtre se trouvent dans une autre feuille ("Base").
J'ai transformé comme tel
Sub ma_jaune()
filtrer [Sheets(Base").Range("c1")].Interior.Color
End Sub
Sub ma_rouge()
filtrer [Sheets("Base").Range("d1")].Interior.Color
End Sub
Sub ma_vert()
filtrer [Sheets("Base").Range("e1")].Interior.Color
End Sub
j'obtiens une erreur.
"Le plus efficace serait d'avoir des valeurs dans ces cellules et une colonne de synthèse pour filtrer directement dessus.
En fait il ya des valeurs et des commentaires dans la majorité des cellules .Certaines sont vides . Mais j'ai vraiment besoin de filtrer en fonction de la couleur pour les affectations .
Merci eric
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
Modifié par eriiic le 12/12/2016 à 19:56
Modifié par eriiic le 12/12/2016 à 19:56
filtrer Sheets("Base").Range("c1").Interior.Color
edit :
si tu peux insérer une colonne C (à masquer) sans que ça mette trop le bazar cette méthode devrait être plus rapide (à confirmer, ne sera pas plus lente de toute façon) :
https://www.cjoint.com/c/FLms1YrRDiR
eric
julia Namor
Messages postés
524
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
13 janvier 2024
33
>
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
13 déc. 2016 à 20:11
13 déc. 2016 à 20:11
Bonjour eric
Voilà une solution qui me semble efficace avec la colonne des "vrai" et "Fau"x et le filtre appliqué dessus.
Mais je pense qu'il doit y avoir une erreur sur le fichier . Aucun filtre ne fonctionne
Peux tu y rejeter un coup d'oeil?
Merci de ton aide
Voilà une solution qui me semble efficace avec la colonne des "vrai" et "Fau"x et le filtre appliqué dessus.
Mais je pense qu'il doit y avoir une erreur sur le fichier . Aucun filtre ne fonctionne
Peux tu y rejeter un coup d'oeil?
Merci de ton aide
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
13 déc. 2016 à 22:45
13 déc. 2016 à 22:45
Les boutons fonctionnent bien chez moi.
Ferme et relance excel pour voir.
Mais j'ai chronométré. Le gain n'est pas faramineux, tu peux rester sur l'ancienne version.
Ce qui prend du temps c'est de lire la couleur des cellules une par une.
Ferme et relance excel pour voir.
Mais j'ai chronométré. Le gain n'est pas faramineux, tu peux rester sur l'ancienne version.
Ce qui prend du temps c'est de lire la couleur des cellules une par une.
julia Namor
Messages postés
524
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
13 janvier 2024
33
Modifié par julia Namor le 14/12/2016 à 10:15
Modifié par julia Namor le 14/12/2016 à 10:15
Bonjour
--Les boutons fonctionnent bien chez moi.
Ferme et relance excel pour voir.
Si j'ai bien compris le fonctionnement du filtre : Il faut d'abord cliquer sur le bouton "FILTRE JAUNE " ou .... Là toutes les lignes sont masquées puis je selection le filtre "vrai" dans la colonne C.
Le resultat s'obtient en deux temps.
mais comme tu me le conseilles ,je vais rester sur l'ancienne version
--Ce qui prend du temps c'est de lire la couleur des cellules une par une
Est ce qu'au lieu de lire les cellulles une à une , ce serait possible pour la macro: Dans la plage spécifiée
-- de touver uniquement la toute premiere cellule de la ligne contenant la couleur du filtre
-- d'afficher cette ligne ou ne pas la masquer
-- D'aller aussitot à la ligne suivante pour refaire la meme procédure.
Ainsi on gagnerait en temps de traitement du fait que toutes les cellules de la plage ne sont pas lues.
J'espere que c'est réalisable
Merci Beaucoup
--Les boutons fonctionnent bien chez moi.
Ferme et relance excel pour voir.
Si j'ai bien compris le fonctionnement du filtre : Il faut d'abord cliquer sur le bouton "FILTRE JAUNE " ou .... Là toutes les lignes sont masquées puis je selection le filtre "vrai" dans la colonne C.
Le resultat s'obtient en deux temps.
mais comme tu me le conseilles ,je vais rester sur l'ancienne version
--Ce qui prend du temps c'est de lire la couleur des cellules une par une
Est ce qu'au lieu de lire les cellulles une à une , ce serait possible pour la macro: Dans la plage spécifiée
-- de touver uniquement la toute premiere cellule de la ligne contenant la couleur du filtre
-- d'afficher cette ligne ou ne pas la masquer
-- D'aller aussitot à la ligne suivante pour refaire la meme procédure.
Ainsi on gagnerait en temps de traitement du fait que toutes les cellules de la plage ne sont pas lues.
J'espere que c'est réalisable
Merci Beaucoup
julia Namor
Messages postés
524
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
13 janvier 2024
33
14 déc. 2016 à 20:29
14 déc. 2016 à 20:29
En fait ma demande ci- dessus était déja satisfaite par ton code
je viens de m'en rendre compte
Merci beaucoup
je viens de m'en rendre compte
Sub filtrer1(couleur As Long)
Dim pl As Range, lig As Long, col As Long
Application.ScreenUpdating = False
Set pl = Sheets("donnees").Range("$C$8:$X$76")
pl.EntireRow.Hidden = True
For lig = pl.Row To pl.Row + pl.Rows.Count
For col = pl.Column To pl.Column + pl.Columns.Count
If Cells(lig, col).Interior.Color = couleur Then
MsgBox "J'ai trouvé une cellule jaune : " & Cells(lig, col).Address
Rows(lig).EntireRow.Hidden = False
Exit For
End If
Next col
Next lig
End Sub
Merci beaucoup
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
15 déc. 2016 à 02:12
15 déc. 2016 à 02:12
Bonjour,
Si j'ai bien compris le fonctionnement du filtre : Il faut d'abord cliquer sur le bouton "FILTRE JAUNE " ou .... Là toutes les lignes sont masquées puis je selection le filtre "vrai" dans la colonne C.
Ah ben non, c'était prévu que ça s'enchaine tout seul.
J'ai dû oublier la fin, je vois ça demain en fin d'am.
Est ce qu'au lieu de lire les cellulles une à une , ce serait possible pour la macro...
Pour les couleurs pas le choix.
Ce qu'il faudrait ça serait des règles pour calculer la couleur d'après le contenu numérique ou texte des cellules.
Si pas possible guère de possibilité d'amélioration significative.
Ou bien si les couleurs n'évoluent pas régulièrement les mémoriser, ensuite le passage d'un filtre à l'autre serait presque instantané.
Et ajouter un bouton pour forcer le rafraichissement de la mémorisation en cas de changements à prendre en compte.
A voir s'il reste beaucoup de latence sur tes 900 lignes. Tu dis...
eric
Si j'ai bien compris le fonctionnement du filtre : Il faut d'abord cliquer sur le bouton "FILTRE JAUNE " ou .... Là toutes les lignes sont masquées puis je selection le filtre "vrai" dans la colonne C.
Ah ben non, c'était prévu que ça s'enchaine tout seul.
J'ai dû oublier la fin, je vois ça demain en fin d'am.
Est ce qu'au lieu de lire les cellulles une à une , ce serait possible pour la macro...
Pour les couleurs pas le choix.
Ce qu'il faudrait ça serait des règles pour calculer la couleur d'après le contenu numérique ou texte des cellules.
Si pas possible guère de possibilité d'amélioration significative.
Ou bien si les couleurs n'évoluent pas régulièrement les mémoriser, ensuite le passage d'un filtre à l'autre serait presque instantané.
Et ajouter un bouton pour forcer le rafraichissement de la mémorisation en cas de changements à prendre en compte.
A voir s'il reste beaucoup de latence sur tes 900 lignes. Tu dis...
eric