Mise en forme couleurs graphiques via une Variable

Bonjour,

J'ai actuellement un problème avec la mise en forme d'une série de données via une variable pour changer les valeurs du RGB(XXX, XXX, XXX).

Mon objectif est de pouvoir déclarer une variable renvoyant un "texte" d'une cellule (RGB(192, 210, 0) ou RGB(210, 192, 0)par exemple) et renvoyer ce "texte" dans un code.

Actuellement quand j'exécute la macro j'ai une erreur : "incompatibilité du type" au niveau de la ligne contenant la variable "texte". De plus quand j'analyse le débogage, la variable prend la valeur : "RGB(192, 210, 0)" alors que je voudrais quelle prenne seulement la valeur : RGB(192, 210, 0) (sans les guillemets)

Voici le code :

Sub Macro2()

Dim CMColour As Variant

CMColour = Worksheets("Results").Range("U16")

 Worksheets("R2 S3").Activate
    ActiveSheet.ChartObjects("Graphique 1").Activate
    ActiveChart.FullSeriesCollection(1).Select
    With Selection.Format.Fill
        .Visible = msoTrue
        .ForeColor.RGB = CMColour 'Lignes du problème
        .Transparency = 0
        .Solid
    End With
    With Selection.Format.Line
        .Visible = msoTrue
        .ForeColor.RGB = CMColour 'Lignes du problème
        .Transparency = 0
    End With

Merci d'avance.
Je pense vraiment que le problème vient du type de variable déclaré depuis le début.

Alexandre

Bonjour,

Dans la cellule, ne copiez que les valeurs 192, 210, 0.

Le code devient alors:

Sub Macro2()
    Dim CMColour As String, v1 As String, v2 As String
    Dim R As Integer, G As Integer, B As Integer

    CMColour = Worksheets("Results").Range("U16")
    v1 = InStr(1, CMColour, ",", 0)
    v2 = InStrRev(CMColour, ",", -1)
    R = CInt(Left(CMColour, v1 - 1))
    G = CInt(Mid(CMColour, v1 + 1, v2 - 1 - v1))
    B = CInt(Mid(CMColour, v2 + 1, 3))

    Worksheets("R2 S3").Activate
    ActiveSheet.ChartObjects("Graphique 1").Activate
    ActiveChart.SeriesCollection(1).Select
    With Selection.Format.Fill
        .Visible = msoTrue
        .ForeColor.RGB = RGB(R, G, B)
        .Transparency = 0
        .Solid
    End With
    With Selection.Format.Line
        .Visible = msoTrue
        .ForeColor.RGB = RGB(R, G, B)
        .Transparency = 0
    End With
End Sub

Cdlt

Merci beaucoup ça marche !

Rechercher des sujets similaires à "mise forme couleurs graphiques via variable"