La funzione si incasina se hai valori in un range maggiore di un anno. Per selezionare sia il mese sia l'anno devi modificare la funzione in questo modo:
codice:
Public Function SommaMese(IntervalloValori As Range, IntervalloDate As Range, MeseScelto As Long, AnnoScelto As Long)
SommaMese = 0
puntvalore = 1
For Each cella In IntervalloValori
puntdata = 1
For Each celladata In IntervalloDate
If puntvalore = puntdata Then
If CLng(Month(celladata.Value)) = MeseScelto And CLng(Year(celladata.Value)) = AnnoScelto Then
SommaMese = SommaMese + cella.Value
End If
End If
puntdata = puntdata + 1
Next
puntvalore = puntvalore + 1
Next
End Function
E la sintassi diventa
=SommaMese(IntervalloValori; IntervalloDate; NumeroMeseScelto, AnnoScelto)