Question Formule
Fermé
Steph
-
21 oct. 2020 à 15:56
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 - 22 oct. 2020 à 14:26
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 - 22 oct. 2020 à 14:26
A voir également:
- Question Formule
- Formule si et - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Formule excel moyenne - Guide
- Formule excel - Guide
- Excel mise en forme conditionnelle formule - Guide
4 réponses
jordane45
Messages postés
38300
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 novembre 2024
4 704
21 oct. 2020 à 16:37
21 oct. 2020 à 16:37
Bonjour,
Tu peux écrire une fonction VBA qui te retourne la couleur au format RGB puis faire une formule "SI" dans ton excel pour obtenir ce que tu souhaites.
Niveau fonction VBA, tu pourrais utiliser, par exemple
Tu peux écrire une fonction VBA qui te retourne la couleur au format RGB puis faire une formule "SI" dans ton excel pour obtenir ce que tu souhaites.
Niveau fonction VBA, tu pourrais utiliser, par exemple
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Function Color ' Purpose Determine the Background Color Of a Cell ' @Param rng Range to Determine Background Color of ' @Param formatType Default Value = 0 ' 0 Integer ' 1 Hex ' 2 RGB ' 3 Excel Color Index ' Usage Color(A1) --> 9507341 ' Color(A1, 0) --> 9507341 ' Color(A1, 1) --> 91120D ' Color(A1, 2) --> 13, 18, 145 ' Color(A1, 3) --> 6 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Function Color(rng As Range, Optional formatType As Integer = 0) As Variant Dim colorVal As Variant colorVal = Cells(rng.Row, rng.Column).Interior.Color Select Case formatType Case 1 Color = Hex(colorVal) Case 2 Color = (colorVal Mod 256) & ", " & ((colorVal \ 256) Mod 256) & ", " & (colorVal \ 65536) Case 3 Color = Cells(rng.Row, rng.Column).Interior.ColorIndex Case Else Color = colorVal End Select End Function
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
Ambassadeur
1 551
21 oct. 2020 à 16:40
21 oct. 2020 à 16:40
bonjour, un exemple:
Option Explicit Private Sub cola() Dim fl As Worksheet, cl As Range, col As Range Set fl = ThisWorkbook.Sheets("Steph") Set col = Intersect(fl.Columns("a"), fl.UsedRange) For Each cl In col If cl.Font.Color = RGB(255, 192, 0) Then cl.Offset(, 1) = cl End If Next cl End Sub
Merci à tous les deux pour vos réponses, je vous fais un retour au plus vite !
Bonne soirée à vous
Bonne soirée à vous
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
1 551
21 oct. 2020 à 23:19
21 oct. 2020 à 23:19
tu n'as pas précisé deux choses:
1) est-ce bien la couleur du texte dans la cellule A qui t'intéresse?
2) que doit-il se passer en colonne B si la couleur en colonne A n'est pas celle que tu cherches?
1) est-ce bien la couleur du texte dans la cellule A qui t'intéresse?
2) que doit-il se passer en colonne B si la couleur en colonne A n'est pas celle que tu cherches?
Bonjour,
Il s'agit de la couleur de la cellule et non du texte, excusez moi pour ce manque de précision.
Pour résumer j'ai mis des conditions en fonction de valeur présente en colonne A et B.
Si les conditions (que j'ai fixé avec des formules Excel) sont ok alors les cellules en question se colorisent avec le code couleur que j'ai fixé plus haut.
Ma demande concernait le cas ou si justement des cellules des colonnes A et B sont colorisés dans la couleur 255, 192, 0 alors sur la même ligne en colonne C, on trouverait la valeur présente en colonne B.
J'espère m'être bien exprimé….
Merci encore pour votre aide.
Il s'agit de la couleur de la cellule et non du texte, excusez moi pour ce manque de précision.
Pour résumer j'ai mis des conditions en fonction de valeur présente en colonne A et B.
Si les conditions (que j'ai fixé avec des formules Excel) sont ok alors les cellules en question se colorisent avec le code couleur que j'ai fixé plus haut.
Ma demande concernait le cas ou si justement des cellules des colonnes A et B sont colorisés dans la couleur 255, 192, 0 alors sur la même ligne en colonne C, on trouverait la valeur présente en colonne B.
J'espère m'être bien exprimé….
Merci encore pour votre aide.
jordane45
Messages postés
38300
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 novembre 2024
4 704
22 oct. 2020 à 10:02
22 oct. 2020 à 10:02
le code que je t'ai donné devrait donc te permettre de faire cela...
par exemple, si dans une cellule excel tu fais une formule du genre
tu devrais obtenir la couleur de la cellule.
De là, il n'est pas difficile de rajouter un IF sur la condition que tu souhaites
par exemple, si dans une cellule excel tu fais une formule du genre
=Color(A1, 2)
tu devrais obtenir la couleur de la cellule.
De là, il n'est pas difficile de rajouter un IF sur la condition que tu souhaites
Steph
>
jordane45
Messages postés
38300
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 novembre 2024
22 oct. 2020 à 10:25
22 oct. 2020 à 10:25
Merci beaucoup pour votre aide à tous les deux
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
1 551
22 oct. 2020 à 13:19
22 oct. 2020 à 13:19
et sinon, que trouve-t-on en C? faut-il préserver la valeur s'y trouvant (ce qui impose du VBA), ou fait-il y mettre une valeur déterminée, ce qui peut se faire par formule.
Steph
>
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
22 oct. 2020 à 13:56
22 oct. 2020 à 13:56
Par défaut toute la colonne C est vide pour que justement elle soit remplie qu'avec une valeur renseignée par la colonne B
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
1 551
>
Steph
22 oct. 2020 à 14:26
22 oct. 2020 à 14:26
alors tu peux faire cela par formule.