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)