L' unica cosa che mi viene in mente e di farlo con una funzione ad hoc:
-metti questo codice in un Modulo standard
- Codice: Seleziona tutto
Function pippotri(ByRef interv As Range) As Integer
'vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=95387
'
Dim myPres As Range, DateAddr As String, myMese As String
Dim mDay As Range, myCnt As Integer, I As Integer
'
DateAddr = Application.Intersect(interv, Range("A1:A100")).Address
myMese = UCase(ActiveSheet.Range("H1"))
For I = ActiveSheet.Index To ActiveSheet.Index + 1
For Each mDay In Sheets(I).Range(DateAddr)
If UCase(Format(mDay, "mmmm")) = myMese Then
myCnt = myCnt + Application.WorksheetFunction.CountIf( _
Application.Intersect(Sheets(I).Range(mDay.Address).Offset(0, 2).Resize(1, 6), Sheets(I).Range(interv.Address)), ">0")
End If
Next mDay
Next I
pippotri = myCnt
End Function
-metti poi questo in ThisWorkbook
- Codice: Seleziona tutto
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim myWork, Eccez, I As Integer
'
Eccez = Array("RIEP", "codici servizi") 'Elenco fogli da ignorare
For I = LBound(Eccez, 1) To UBound(Eccez, 1)
If Sh.Name = Eccez(I) Then Exit Sub
Next I
Application.EnableEvents = False
myWork = Sh.Range("C20").Value
Sh.Range("C20").Value = "ZcZc" & Sh.Range("C20").Value
Sh.Range("C20").Value = myWork
Application.EnableEvents = True
End Sub
Poi nel tuo foglio userai una formula del tipo
- Codice: Seleziona tutto
=pippotri(A14:J70)
A14:J57 e' l' area che contiene le date da esaminare e le presenze da conteggiare; le date sono in col A, le presenze sono da col C verso dx per max 6 colonne. Si possono indicare piu' righe di quante realmente ne sono utilizzate sul foglio, perche' solo quelle che hanno una data del mese corrente vengono prese in considerazione.
E' necessario che i 12 mesi abbiano la stessa struttura dati, e che i mesi si succedano come da calendario.
La macro in ThisWorkbook serve per forzare il ricalcolo delle presenze quando si attiva il foglio; infatti solo quando si inseriscono nuovi dati dati NEL FOGLIO CORRENTE (all' interno dell' area dichiarata alla funzione "pippotri", A14:J70 nell' esempio) la formula ricalcola automaticamente il risultato, mentre non ricalcolerebbe se i dati sono inseriti /modificati sul foglio "successivo" (con data del mese "precedente").
Per quanto riguarda dicembre immagino che i dati saranno sempre monchi, perche' sul workbook non esiste il mese di Gennaio dell' anno successivo.
Prova e fai sapere.