La formattazione va usata per variare il modo in cui le informazioni vengono presentate, non per dare un peso diverso alle stesse informazioni; quindi dati impostati come la tua tabellina sono fatti per non essere piu' elaborati.
Il primo suggerimento che voglio dare e' di togliere il pc e dare block notes e matita copiativa a chi l' ha progettata cosi'..
Un prospetto piu' lavorabile avrebbe previsto una informazione aggiuntiva (una colonna) per ogni gruppo di spesa (riga), in cui si sarebbe inserita la valuta delle spese, e questa informazione avrebbe "qualificato" le celle aggiuntive come valori in $, o in CHF, o in qualsiasi altra valuta.
Cio detto, puoi ottenere quello che chiedi con questo codice:
- Codice: Seleziona tutto
Function SumValuta(ByRef Celle As Range)
Application.Volatile
'If Celle.Rows.Count > 1 And Celle.Columns.Count > 1 Then Exit Function
CValForm = Application.Caller.NumberFormat
For Each VCell In Celle
If VCell.NumberFormat = CValForm Then SumValuta = SumValuta + VCell
Next VCell
End Function
Da excel, Alt-F11 per aprire l' editor delle macro; Menu /Inserisci /Modulo; copia il codice e incollalo nel frame di dx.
Poi torna su excel, nella cella dove vuoi "un totale per valuta" metti una formula come
- Codice: Seleziona tutto
=SumValuta(D2:D30)
dove ad esempio D2:D30 e' il range che contiene l' elenco delle spese; probabilmente vedrai 0, ma se formatti la cella risultato con lo stesso formato di una cella del tuo elenco e poi premi F9 verra' calcolato la somma delle celle in elenco che hanno "esattamente lo stesso formato numero" della cella di destinazione.
Calcola cosi' i totali di tutte le valute che hai.
Il calcolo viene eseguito ogni volta che cambiano i dati in ingresso o c'e' un qualsiasi ricalcolo nel foglio; tieni presente che la mera formattazione di una cella non provoca ricalcolo, quindi e' opportuno usare F9 per forzare il ricalcolo per essere sicuri del risultato.
Inoltre, avendo detto che la funzione calcola la somma delle celle in elenco che hanno "esattamente lo stesso formato numero" della cella di destinazione e' opportuno verificare che quanto calcolato con SumValuta corrisponda al totale in elenco e mettere in evidenza qualsiasi differenza; in presenza di differenze va analizzato il formato delle celle in ingresso, che probabilmente e' disomogeneo nell' ambito della stessa valuta e va armonizzato.
Ciao.