Io mi sono trovato subito un bel grattacapo:
vorrei automatizzare con una macro la creazione di grafici a dispersione XY, in modo che i simboli assumano dei colori prefissati.
Nel foglio "SpostOrizz" ho i dati e nel foglio "Colori" ho appunto i colori che voglio dare ai "pallini" nel grafico.
Questa macro (ottenuta in gran parte registrando le operazioni che voglio eseguire) prima di tutto svuota il grafico, poi crea tutte le serie come sono elencate nel foglio dati (e fin qui tutto bene) e alla fine dovrebbe colorare tutte le serie.
Con il colore della linea funziona (anche se avrei preferito tenerla nera!)
Il colore del riempimento rimane uguale per tutti (come ho già detto sopra le istruzioni le ho ricavate da una macro registrata, mica inventate!).
Ecco la macro:
- Codice: Seleziona tutto
Sub AggiornaSerie()
Sheets("Grafico1").Select
For totale = 1 To ActiveChart.SeriesCollection.Count
ActiveChart.SeriesCollection(1).Delete
Next totale
UR = Range("SpostOrizz!B9").End(xlDown).Row
UC = Range("SpostOrizz!C6").End(xlToRight).Column
For Col = 3 To UC
Att = ActiveChart.SeriesCollection.Count + 1
nomeSerie = Range("SpostOrizz!B6").Offset(0, Col - 2)
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(Att).XValues = "=SpostOrizz!R" & 9 & "C" & Col & ":R" & UR & "C" & Col
Col = Col + 1
ActiveChart.SeriesCollection(Att).Values = "=SpostOrizz!R" & 9 & "C" & Col & ":R" & UR & "C" & Col
ActiveChart.SeriesCollection(Att).Name = nomeSerie
Next Col
For i = 1 To ActiveChart.SeriesCollection.Count
ActiveChart.FullSeriesCollection(i).Select
Rosso = Range("Colori!B1").Offset(i, 0)
Giallo = Range("Colori!B1").Offset(i, 1)
Blu = Range("Colori!B1").Offset(i, 2)
With Selection.Format.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(Rosso, Giallo, Blu)
.Transparency = 0
.Weight = 1
End With
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(Rosso, Giallo, Blu)
.Transparency = 0
.Solid
End With
Next i
End Sub
Qui c'è il file d'esempio
http://www.filedropper.com/estrazionevalori2015