Prova questo codice:

codice:
Public Sub DifferenzaDate(DI As Date, DF As Date)

Dim ggDI As Integer
Dim mmDI As Integer
Dim aaDI As Integer

Dim ggDF As Integer
Dim mmDF As Integer
Dim aaDF As Integer

Dim gg As Integer
Dim mm As Integer
Dim aa As Integer

Dim mmAntDF As Integer

Dim ggMM(11) As Integer

    ggMM(0) = 31
    ggMM(1) = 28
    ggMM(2) = 31
    ggMM(3) = 30
    ggMM(4) = 31
    ggMM(5) = 30
    ggMM(6) = 31
    ggMM(7) = 31
    ggMM(8) = 30
    ggMM(9) = 31
    ggMM(10) = 30
    ggMM(11) = 31

    aaDI = Year(DI)
    mmDI = Month(DI)
    ggDI = Day(DI)

    aaDF = Year(DF)
    mmDF = Month(DF)
    ggDF = Day(DF)

    aa = aaDF - aaDI
    mm = mmDF - mmDI
    gg = ggDF - ggDI

    If mm < 0 Then
        mm = 12 + mm
        aa = aa - 1
    End If

    If gg < 0 Then
        mmAntDF = mmDF - 1
        If mmAntDF = 0 Then
            mmAntDF = 12
        End If
        gg = ggMM(mmAntDF - 1) - ggDI + ggDF
        If mm > 0 Then
            mm = mm - 1
        Else
            aa = aa - 1
            mm = 11
        End If
    End If

    GGMMAA(0) = gg
    GGMMAA(1) = mm
    GGMMAA(2) = aa

End Sub