› Sviluppare funzionalita su Microsoft Office con VBA › modificare colori di un grafico
-
AutoreArticoli
-
Ciao a tutti.
Il grafico allegato è dinamico.
Non è mio ma è di un collega che ora è in pensione.
Non capisco dove si impostano i colori delle colonne
la colonna 1 = ore previste
la colonna 2 = ore lavorate totali
la colonna 3 = ore 00
la colonna 4 = ore 02
la colonna 5 = ore 03
la colonna 2 varia il colore se maggiore della colonna 1 rosso
la colonna 2 varia il colore se minore della colonna 1 verde
la colonna 2 varia il colore se ugualer della colonna 1 giallocome sono impostati i colori?
Grazie
E' questa macro in
Private Sub Worksheet_Change(ByVal Target As Range) '10 RIGHE
'-------------------------------------------------------------------------------
On Error Resume Next
Set xChart = ActiveSheet.ChartObjects("Grafico 1").Chart '<<< nome grafico
If xChart Is Nothing Then Exit SubWith xChart.SeriesCollection(2) '<<< numero colonna da colorare
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
'-------------------------------------------------------------------------------che colora la colonna 2
i colori li preleva dalle righe
ma non capisco quali sono nella macro
A riguardo di https://www.excelvba.it/forumexcel/forums/discussione/modifica-grafico/
Non hai nulla da aggiungere?
In I9:I18 ci sono delle Formattazioni Condizionali. In base al numero immesso in colonna D9:D18 si colorano di verde, rosso, giallo
Da qui si avvia in Foglio(10r2) il Worksheet_Change che colora la rispettiva riga da colonna B sino H
Alla fine avvia Sub ColorChartColumnsbyCellColor() che avendo modificato valori ho aggiunto altre righe, colora la rispettiva colonna nel grafico (gran bel grafico)Grazie raffaele53.
Ma nella macro
Set xChart = ActiveSheet.ChartObjects("Grafico 1").Chart '<<< nome grafico
quale è la parte di macro che dice di colorare la colonna 2?
Sarebbe meglio che dici cosa intendi fare?
Come scritto il colore viene assegnato dalla FC in I9:I18
Ora aggiungi a seguire da B11= BBB bbbbb 300 100,00 100,00 100,00 300,00
La cella I11 diventa gialla e avvia iL Worksheet_Change, il quale colora le righe tramite
>>>Case "mag"
>>>.color = RGB(255, 40, 0) 'rosso 'RGB(255, 40, 0) 'rosso 'vbRed
>>>Case "min"
>>>.color = RGB(120, 255, 0) 'verde 'RGB(120, 255, 0) 'verde 'vbGreen
>>>Case "ugu"
>>>.color = RGB(255, 255, 0) 'giallo 'RGB(255, 255, 0) 'giallo 'vbYellow
Quando fatto prosegue ( sempre nel foglio"10R2", non nel Modulo5) per colorare la 2°colonna del grafico.
Notiamo in ordine crescente le righe colorate sono verdi, rosse, gialle = 1,2,3
Il grafico (dopo l'aggiunta di riga11) avrà tre sezioni e la seconda colonna di ogni grafico viene colorata da
>>>.Points(I).Format.Fill.ForeColor.RGB = ThisWorkbook.Colors(xRg.Offset(I - 1, 0).Interior.ColorIndex)Quindi se ho capito se cambio qui il numero
With xChart.SeriesCollection(3) '<<< numero colonna da colorare
mi colora secondo le righe dove inserisco i dati la colonna 3 del grafico.
Ho fatto una modifica alla macro per provare.
Ho cambiato qui in 3
With xChart.SeriesCollection(3) '<<< numero colonna da colorare
ora si colora la colonna 3 del grafico come le righe riferite.
Non capisco perchè in ogni grafico il colore della colonna 2 non resta fisso come il colore delle colonne 1/4/5
Allegati:
You must be logged in to view attached files.Penso sia così
nella colonna 2 del primo grafico
click destro mouse > formato coordinata
riempimento a tinta unita
prima era automatico
>>> il colore della colonna 2 non resta fisso come il colore delle colonne 1/4/5
Premesso che capirti è difficile, era meglio scrivere che volevi la 2° colonna verde?
Nel VBA rimetti ...Collection(2), e nelle 6 righe fai in modo che siano tutte verdi
Quando tutte le 2° colonne sono verdi, rimetti ...Collection(3)EDIT meglio la Tua soluzione
Ps. A cosa è servito spostare il colore dalla 2°colonna?
Grazie raffaele53
-
AutoreArticoli
