Dim intTot(3) As Integer 'creazione di una matrice a tre vettori
Dim varValCel As Variant 'creazione della variabile che acquisisce il valore della cella
Dim varColor As Variant 'creazione della variabile che acquisice il valore del colore della cella
Dim intCount As Integer 'creazione della variabile contatore per la progressione del ciclo
intCount = 6 'parte dalla riga N°6 ovvero dove ho inserito il primo valore
varValCel = Cells(intCount, 3) 'riempimento della variabile con il valore della prima cella della lista, per evitare che il ciclo non abbia inizio
Worksheets("Foglio1").Cells(6, 5).Characters.Font.Color = 255 'imposto i colori delle celle destinate ai risultati Worksheets("Foglio1").Cells(7, 5).Characters.Font.Color = 16711680 'imposto i colori delle celle destinate ai risultati Worksheets("Foglio1").Cells(8, 5).Characters.Font.Color = 0 'imposto i colori delle celle destinate ai risultati
'============================= ' INIZIO SCANSIONE CELLE '============================= Do Until IsEmpty(varValCel) 'ciclo principale che continua fino a quanto il valore della cella è vuoto varValCel = Cells(intCount, 3) 'acquisico il valore della cella varColor = Cells(intCount, 3).Characters.Font.Color 'aquisico il valore del colore del testo
Select Case varColor 'routine che gestice la somma dei tre vettori discriminanto il colore Case 255 'rosso RGB intTot(1) = intTot(1) + varValCel
Case 16711680 'blu RGB intTot(2) = intTot(2) + varValCel
Case 0 'nero RGB intTot(3) = intTot(3) + varValCel
intCount = intCount + 1 'incrementa il valore della riga Loop '============================= ' TERMINE SCANSIONE CELLE '============================= End Sub
Ti spiego
Questo esempio lavoro dopo aver creato un tasto con gli strumenti VB, chiamato btnCalcola
funziona partendo dalla cella C6 a scendere, fino a quando non la trova vuota
ho settato tre colori:
255, valore RGB che corrisponde al rosso
16711680, queto corrisponde ad un blu
0, questo è il nero
se vuoi ti mando il file excel. Ah devi abilitare le macro
Ah in visual basic i riferimenti alle celle sono numerici, e invertiti: prima la riga, poi la colonna. Cells(6,5) corrisponde a E6 (E=colonna 5)
OT
bravo Luca, uno dei pochi programmatori che commenta le righe di codice
you don't need the Weatherman to know where the wind blows - bob dylan
il vantaggio di essere intelligente è che si può sempre fare l'imbecille, mentre il contrario è del tutto impossibile - woody allen
Segnalibri