Immaginiamo di avere un intervallo di celle in Excel, B5:B20, e di voler sommare le celle di questo intervallo in base alla loro formattazione; ad esempio abbiamo bisogno di sommare tutte le celle che hanno il carattere o lo sfondo rosso e il testo in grassetto.

Prima di tutto si deve lavorare tramite codice VBA quindi apriamo la relativa finestra.

In Excel XP o 2003:
Menù Strumenti – Macro – Visual Basic Editor

In Excel 2007:
Bottone di Office – Pulsante Opzioni di Excel – Impostazioni generali – Opzione “Mostra scheda Sviluppo sulla barra multifunzione”
A questo punto ritornando nella finestra di Excel verrà visualizzata anche la Scheda Sviluppo nella quale troviamo il pulsante Visual Basic

Nella finestra Visual Basic inserire un nuovo modulo (menù Inserisci – Modulo)
Copiare il codice riportato sotto:

Function FormatSum(rCriteriaCell As Range, rRange As Range)
Dim rcell As Range
Dim bMatch As Boolean
Dim vResult

For Each rcell In rRange
With rcell
bMatch = (rCriteriaCell.Interior.ColorIndex = _
.Interior.ColorIndex And _
rCriteriaCell.Font.ColorIndex = _
.Font.ColorIndex And _
rCriteriaCell.Font.Bold = _
.Font.Bold And _
rCriteriaCell.Font.Italic = _
.Font.Italic And _
rCriteriaCell.Font.Underline = .Font.Underline)
End With
If bMatch = True Then
vResult = WorksheetFunction.Sum(rcell) + vResult
End If
Next rcell

FormatSum = vResult
End Function

Chiudere la finestra e ritornare in Excel. La funzione che deve essere inserita per sommare le celle secondo il loro formato è la seguente:

=FormatSum(Formato;Intervallo)

In cui:
Formato: La cella contenente il formato di riferimento
Intervallo: Le effettive celle da sommare

Esempio: =FormatSum($B$5;B5:B20)
Somma, nell’intervallo B5:B20, tutte le celle che hanno il formato presente nella cella B5 (esempio testo o sfrondo rosso in grassetto).

Nel nostro esempio la cella del formato può essere qualsiasi cella, contenente qualsiasi formato.

P.S.
Se nella cella di riferimento viene modificato il formato, l’aggiornamento del risultato della somma non è automatico; il cambiamento di un dato nelle celle dell’intervallo da sommare farà si che il risultato venga ricalcolato.

Invece il metodo più veloce per far si che la somma si aggiorni automaticamente quando cambiate il formato delle celle nell’intervallo, è quello di applicare il formato nelle celle che dovranno essere aggiunte alla somma copiandolo da una cella già formattata utilizzando il pulsante Copia Formato presente sulla barra degli strumenti di Formattazione.

Informatics, ski racer, loves Finland, Norway, mountains, squash, photography, Drones and RC Helicopter – Snapchat: andrea.perotti

Translate »