Question Formule

Steph -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je cherche à l'aide d'une formule ou de vba (je n'ai pas réussi à le faire avec une formule).

Ma demande concerne la condition suivante :

Si couleur dans la colonne A = (255,192,0) alors copier la valeur de la cellule colorisé au même endroit dans la colonne B ( exemple A26 = 120 dans B26 = 120)

Merci d'avance pour votre aide.

Configuration: Windows / Edge 18.17763
A voir également:

4 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'   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

1
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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
1
Steph
 
Merci à tous les deux pour vos réponses, je vous fais un retour au plus vite !

Bonne soirée à vous
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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?
0
Steph
 
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.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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

=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
0
Steph > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Merci beaucoup pour votre aide à tous les deux
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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.
0
Steph > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
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
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Steph
 
alors tu peux faire cela par formule.
0