Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fonction ESTCOULEUR

12 réponses
Avatar
milloche
Bonjour tous
Je voudrais rajouter à mon excel 2000 une fonction perso.
=SI(ESTROUGE("A1");macro1;macro2) ou quelque chose s'en rapprochant.
Je voudrais les 2 solutions : soit le rouge (ou une autre couleur /
ColorIndex) concerne le fond ou concerne la couleur de police.
Et je patauge lamentablement comme d'habitude !
Merci

2 réponses

1 2
Avatar
milloche
Bonjour Jac
Si, j'ai "inventé" un filtre couleur qui justement peut filtrer des lignes
qui n'ont aucum point commun si ce n'est que les cellules d'une colonne ont
la même couleur de fond. Un filtre élaboré n'y arrive pas.
Défaut : je travaille en permanence sous mode filtre, mais ce n'est pas
gênant.
Bien sûr il y a des trucs là-dedans qui sont spécifiques à mon fichier.
A toi de modifier la macro en conséquence.
Le principe est de colorier dans une des colonnes des cellules que l'on
veut filtrer, de la même couleur.
Et celà se fait rapidement. Puis en restant sur l'une d'elles, d'envoyer la
macro.
Amuse toi bien.

Sub FiltreCouleur()
Dim couleur, colonne, position
Set position = ActiveCell
If ActiveCell.Row < 3 Then [A65536].End(xlUp).Select: Exit Sub
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
If ActiveSheet.DrawingObjects("BoutCoul").Caption = "FILTRE COULEUR" Then
ActiveSheet.DrawingObjects("BoutCoul").Caption = "FILTRER COULEUR"
ActiveSheet.DrawingObjects("BoutCoul").ShapeRange.Fill.ForeColor.SchemeColor
= 22
Range("A2").AutoFilter field:=5, Criteria1:="<>"""""
[A65536].End(xlUp).Select
Range("O1").FormulaLocal = "=N1/U1"
Range("Q1").FormulaLocal = "=P1/U1"
Range("C2") = "Nbre"
Application.EnableEvents = True
Application.Calculation = xlAutomatic
Exit Sub
End If
colonne = ActiveCell.Column
couleur = ActiveCell.Interior.ColorIndex
If couleur > 0 Then
End If
Application.ScreenUpdating = False
Range("A65536").End(xlUp).Offset(0, colonne - 1).Select
If couleur > 0 Then
ActiveSheet.DrawingObjects("BoutCoul").ShapeRange.Fill.ForeColor.SchemeColor
= couleur + 7 '3 'vert
Else
ActiveSheet.DrawingObjects("BoutCoul").ShapeRange.Fill.ForeColor.SchemeColor
= 9
End If
ActiveSheet.DrawingObjects("BoutCoul").Caption = "FILTRE COULEUR"
Do
If ActiveCell.Interior.ColorIndex = couleur Then
ActiveCell.Offset(-1, 0).Select
If ActiveCell.Row = 2 Then
Application.ScreenUpdating = True
[A65536].End(xlUp).Select
position.Select
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Exit Sub
End If
Else
ActiveCell.EntireRow.Hidden = True
ActiveCell.Offset(-1, 0).Select
If ActiveCell.Row = 2 Then
Application.ScreenUpdating = True
position.Select
Exit Do
End If
End If
Loop
Application.ScreenUpdating = True
ActiveWindow.LargeScroll Down:=-5
Application.EnableEvents = True
position.Select
Range("C2").FormulaR1C1 = "ÊlcSpe(R3C:R[65000]C)"
Application.Calculation = xlCalculationAutomatic
End Sub


"Jac" a écrit dans le message de news:

... oui mais, le défaut de la mise en couleur, c'est que ça n'intervient
ni dans les tris ni dans les filtres. Donc en aucun cas ça pourra te
servir à afficher tous ceux qui correspondent à un ou plusieurs critères,
ni à faire un tableau croisé qui te fera les cumuls par critère. Mais tu
vas dire "... pas besoin pour le moment..." mais un jour ou l'autre, tu
finiras par avoir besoin de comparer combien et pour quel CA il y a eu
d'achats comptant ou à crédit.

Le mieux serait de rajouter une colonne, car je ne pense pas que tu en
utilises 256... et d'utiliser pour une mise en couleur automatique le
formatage conditionnel.

Jac

Le 25/07/2009, milloche a supposé :
Précision
Tu dois penser que je suis un peu bête car il suffirait de rajouter une
colonne type de paiement, seulement toutes mes colonnes sont occupées,
c'est pourquoi j'ai eu cette idée de rajouter cette fonction couleur à
une colonne existante.
Mais j'ai eu juste l'idée !
<]:o))



J'affecte la couleur rouge, ou une autre, manuellement en fonction de la
ligne concernée.
Par exemple si la ligne concerne un achat au comptant, je mets du vert
en A ou à crédit (rouge en A).
Ceci se répercutant sur les colonnes qui suivent, contenant des
formules, par exemple solde caisse ou solde banque. C'est la que je veux
utiliser la fonction qui donnera différents montants suivant la couleur
de A.






Avatar
milloche
Pour t'aider un peu, ma ligne 1 comporte des
sous.total(9,ligne3:ligne65000)
Ma ligne 2 comporte les titres de colonnes et mes boutons de la bo
"dessin",dont "BoutCoul".
Ensuite viennent mes donnée (avec un freezepanes en A3)
C'est grâce à cela que j'obtiens les totaux que je veux avec ce filtre
couleur.

"milloche" a écrit dans le message de news:

Bonjour Jac
Si, j'ai "inventé" un filtre couleur qui justement peut filtrer des
lignes qui n'ont aucum point commun si ce n'est que les cellules d'une
colonne ont la même couleur de fond. Un filtre élaboré n'y arrive pas.
Défaut : je travaille en permanence sous mode filtre, mais ce n'est pas
gênant.
Bien sûr il y a des trucs là-dedans qui sont spécifiques à mon fichier.
A toi de modifier la macro en conséquence.
Le principe est de colorier dans une des colonnes des cellules que l'on
veut filtrer, de la même couleur.
Et celà se fait rapidement. Puis en restant sur l'une d'elles, d'envoyer
la macro.
Amuse toi bien.

Sub FiltreCouleur()
Dim couleur, colonne, position
Set position = ActiveCell
If ActiveCell.Row < 3 Then [A65536].End(xlUp).Select: Exit Sub
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
If ActiveSheet.DrawingObjects("BoutCoul").Caption = "FILTRE COULEUR" Then
ActiveSheet.DrawingObjects("BoutCoul").Caption = "FILTRER COULEUR"

ActiveSheet.DrawingObjects("BoutCoul").ShapeRange.Fill.ForeColor.SchemeColor
= 22
Range("A2").AutoFilter field:=5, Criteria1:="<>"""""
[A65536].End(xlUp).Select
Range("O1").FormulaLocal = "=N1/U1"
Range("Q1").FormulaLocal = "=P1/U1"
Range("C2") = "Nbre"
Application.EnableEvents = True
Application.Calculation = xlAutomatic
Exit Sub
End If
colonne = ActiveCell.Column
couleur = ActiveCell.Interior.ColorIndex
If couleur > 0 Then
End If
Application.ScreenUpdating = False
Range("A65536").End(xlUp).Offset(0, colonne - 1).Select
If couleur > 0 Then
ActiveSheet.DrawingObjects("BoutCoul").ShapeRange.Fill.ForeColor.SchemeColor
= couleur + 7 '3 'vert
Else
ActiveSheet.DrawingObjects("BoutCoul").ShapeRange.Fill.ForeColor.SchemeColor
= 9
End If
ActiveSheet.DrawingObjects("BoutCoul").Caption = "FILTRE COULEUR"
Do
If ActiveCell.Interior.ColorIndex = couleur Then
ActiveCell.Offset(-1, 0).Select
If ActiveCell.Row = 2 Then
Application.ScreenUpdating = True
[A65536].End(xlUp).Select
position.Select
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Exit Sub
End If
Else
ActiveCell.EntireRow.Hidden = True
ActiveCell.Offset(-1, 0).Select
If ActiveCell.Row = 2 Then
Application.ScreenUpdating = True
position.Select
Exit Do
End If
End If
Loop
Application.ScreenUpdating = True
ActiveWindow.LargeScroll Down:=-5
Application.EnableEvents = True
position.Select
Range("C2").FormulaR1C1 = "ÊlcSpe(R3C:R[65000]C)"
Application.Calculation = xlCalculationAutomatic
End Sub


"Jac" a écrit dans le message de news:

... oui mais, le défaut de la mise en couleur, c'est que ça n'intervient
ni dans les tris ni dans les filtres. Donc en aucun cas ça pourra te
servir à afficher tous ceux qui correspondent à un ou plusieurs
critères, ni à faire un tableau croisé qui te fera les cumuls par
critère. Mais tu vas dire "... pas besoin pour le moment..." mais un
jour ou l'autre, tu finiras par avoir besoin de comparer combien et pour
quel CA il y a eu d'achats comptant ou à crédit.

Le mieux serait de rajouter une colonne, car je ne pense pas que tu en
utilises 256... et d'utiliser pour une mise en couleur automatique le
formatage conditionnel.

Jac

Le 25/07/2009, milloche a supposé :
Précision
Tu dois penser que je suis un peu bête car il suffirait de rajouter une
colonne type de paiement, seulement toutes mes colonnes sont occupées,
c'est pourquoi j'ai eu cette idée de rajouter cette fonction couleur à
une colonne existante.
Mais j'ai eu juste l'idée !
<]:o))



J'affecte la couleur rouge, ou une autre, manuellement en fonction de
la ligne concernée.
Par exemple si la ligne concerne un achat au comptant, je mets du vert
en A ou à crédit (rouge en A).
Ceci se répercutant sur les colonnes qui suivent, contenant des
formules, par exemple solde caisse ou solde banque. C'est la que je
veux utiliser la fonction qui donnera différents montants suivant la
couleur de A.










1 2