Excel ti consente di applicare tutti i tipi di formattazione alle celle della cartella di lavoro. Una delle cose che puoi fare è “ombreggiare” le celle usando un motivo o un colore. (Puoi farlo nella scheda Motivi della finestra di dialogo Formato celle.) A un certo punto potresti voler sapere quante celle in un intervallo sono ombreggiate.

Non esiste una formula del foglio di lavoro in Excel che ti consenta di contare le celle ombreggiate. Invece, devi sviluppare la tua macro per farlo. La seguente macro è un esempio di un modo per affrontare questo problema. Conta il numero di celle ombreggiate nell’intervallo da A1 a J20 e inserisce il conteggio nella cella A1.

Sub CountColor()

Dim irow, icol As Integer

Cells(1, 1) = 0     For irow = 1 To 20         For icol = 1 To 10             If Cells(irow, icol).Interior.ColorIndex _               <> xlColorIndexNone Then                 Cells(1, 1) = Cells(1, 1) + 1             End If         Next icol     Next irow End Sub

Si noti che il cuore della routine è il confronto che viene eseguito tra il ColorIndex di ciascuna cella e la costante xlColorIndexNone predefinita. Se non sono uguali, la cella è stata ombreggiata in qualche modo.

Questa stessa tecnica di base può essere facilmente adattata a una funzione personalizzata.

Notate di seguito che lo stesso confronto viene fatto cella per cella:

Function FindShades(a As Range) As Integer     FindShades = 0     For Each c In a         If c.Interior.ColorIndex <> xlColorIndexNone Then             FindShades = FindShades + 1         End If     Next c End Function

Per utilizzare questa funzione, è sufficiente utilizzarla in una cella, come formula, e specificare un intervallo nella formula:

= FindShades(B7:E52)

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (2059) si applica a Microsoft Excel 97, 2000, 2002 e 2003.