Domanda Colore grafico da celle o da intervallo definito in nome serie

DTM

Nuovo utente
6 Marzo 2019
4
0
1
Excel 20010
Best answers
0
Buonasera a tutti,
vi spiego il mio problema.
Ho dei dati in un foglio (Foglio 1 nell'esempio) ed un grafico a dispersione in un altro (Foglio 2 nell'esempio).
Nel foglio 2 sono presenti 5 celle colorate che danno il nome alla serie.
Ecco io vorrei assegnare ai punti del grafico (e quindi anche alla legenda) il colore delle celle che contengono il nome della serie anche solo definendo manualmente tale intervallo.
La versione Excel è la 2010.

Navigando nel forum e su internet ho visto la seguente subroutine che però colora il grafico in funzione del colore dato alle celle dei dati.

Codice:
Sub ColorChartColumnsbyCellColor()
'Updateby Extendoffice
    Dim xChart As Chart
    Dim I As Long, xRows As Long
    Dim xRg As Range, xCell As Range
    On Error Resume Next
    Set xChart = ActiveSheet.ChartObjects("Chart 1").Chart
    If xChart Is Nothing Then Exit Sub
    With xChart.SeriesCollection(1)
        Set xRg = ActiveSheet.Range(Split(Split(.Formula, ",")(1), "!")(1))
        xRows = xRg.Rows.Count
        Set xRg = xRg(1)
        For I = 1 To xRows
            .Points(I).Format.Fill.ForeColor.RGB = ThisWorkbook.Colors(xRg.Offset(I - 1, 0).Interior.ColorIndex)
        Next
    End With
End Sub
Come posso fare per particolarizzarlo per il mio caso?
Grazie a chiunque voglia aiutarmi
 

Allegati

Ultima modifica di un moderatore:

Marius44

VBA Expert
Moderatore
Expert
9 Settembre 2015
4.960
123
63
75
Catania
Excel2010
Best answers
82
Ciao
prova a dare uno sguardo qui

Ma nel tuo file non vedo alcuna macro. Se, come immagino, non hai dimestichezza con VBA la vedo molto ... in salita.

Ciao,
Mario
 

DTM

Nuovo utente
6 Marzo 2019
4
0
1
Excel 20010
Best answers
0
Ciao
prova a dare uno sguardo qui

Ma nel tuo file non vedo alcuna macro. Se, come immagino, non hai dimestichezza con VBA la vedo molto ... in salita.

Ciao,
Mario
Ciao,
Come potrai notare avevo scritto in coda alla discussione per cercare risposta alla mia domanda.
Per quanto riguarda VBA io uso piccole macro rudimentali (soprattutto cicli if e for).
Per questo mi servirebbe un codice "cotto e mangiato" vista la complessità di questo problema.
Nel mio excel non ci sono macro perché ho provato quella proposta ma non funziona quindi ho lasciato carta bianca a chi è più competente di me
 

Marius44

VBA Expert
Moderatore
Expert
9 Settembre 2015
4.960
123
63
75
Catania
Excel2010
Best answers
82
Ciao
Vista la sincerità ti posto il codice che va messo nel modulo del Foglio interessato (nel tuo caso Alt+F11, doppio clic su Foglio2 nell'elenco a sinistra e incolla il codice)
Visual Basic:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Sub ColorChartColumnsbyCellColor()
'Updateby Extendoffice
    Dim xChart As Chart
    Dim I As Long  ', xRows As Long
    'Dim xRg As Range, xCell As Range
    'On Error Resume Next
    Dim r As Integer
    Dim g As Integer
    Dim b As Integer
    Dim lngColor As Long
    Set xChart = ActiveSheet.ChartObjects("Chart 1").Chart
    If xChart Is Nothing Then Exit Sub
    With xChart
      For I = 1 To .SeriesCollection.Count
        'colori RGB della ogni cella di colonna B
        lngColor = Cells(I + 1, 2).Interior.Color
        r = lngColor Mod &H100
        lngColor = lngColor \ &H100
        g = lngColor Mod &H100
        lngColor = lngColor \ &H100
        b = lngColor Mod &H100
        'assegna il colore alla serie
        .SeriesCollection(I).Format.Fill.ForeColor.RGB = RGB(r, g, b)
      Next I
    End With

'    With xChart.SeriesCollection(1)
'        Set xRg = ActiveSheet.Range(Split(Split(.Formula, ",")(1), "!")(1))
'        xRows = xRg.Rows.Count
'        Set xRg = xRg(1)
'        For I = 1 To xRows
'            .Points(I).Format.Fill.ForeColor.RGB = ThisWorkbook.Colors(xRg.Offset(I - 1, 0).Interior.ColorIndex)
'        Next
'    End With
End Sub
Ho usato la macro da te postata opportunamente modificata (ho lasciato il codice superfluo anteponendo l'apice singolo; puoi anche togliere tutto ciò che nel tuo Modulo sarà colorato in verde).
Ogni volta che selezioni una cella nel Foglio2 la macro aggiusta i colori ponendoli uguali a quelli delle celle.

Fai sapere. Ciao,
Mario

PS - Non allego il file con la macro inserita ... perchè così spero tu impari.
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!