Public Function INTERVALO(FA As Date, FB As Date, FI As Date, FF As Date) As Long
INTERVALO = 0
Select Case FA
Case Is > FB
Call MsgBox("LA FECHA DE ALTA NO PUEDE SER MAYOR QUE LA FECHA DE BAJA", vbCritical, "ERROR")
INTERVALO = 0
Exit Function
Case Is < FB
Rem CASO 1
If FI < FA And FI < FB And FF < FA And FF < FB Then
INTERVALO = 0
MsgBox "DIAS " & " " & Str$(INTERVALO)
End If
Rem CASO 2
If FI < FA And FI < FB And FF = FA And FF < FB Then
INTERVALO = 1
MsgBox "DIAS " & " " & Str$(INTERVALO)
End If
Rem CASO 3
If FI = FA And FI < FB And FF = FA And FF < FB Then
INTERVALO = 1
MsgBox "DIAS " & " " & Str$(INTERVALO)
End If
Rem CASO 4
If FI = FA And FI < FB And FF > FA And FF < FB Then
'INTERVALO=FF-FA O FF-FI
INTERVALO = DateDiff("d", FA, FF) + 1
MsgBox "DIAS " & " " & Str$(INTERVALO)
End If
Rem CASO 5
If FI = FA And FI < FB And FF > FA And FF = FB Then
'INTERVALO=FB-FA O FF-FI
INTERVALO = DateDiff("d", FA, FB) + 1
MsgBox "DIAS " & " " & Str$(INTERVALO)
End If
Rem CASO 6
If FI = FA And FI < FB And FF > FA And FF > FB Then
'INTERVALO=FB-FA O FB-FI
INTERVALO = DateDiff("d", FA, FB) + 1
MsgBox "DIAS " & " " & Str$(INTERVALO)
End If
Rem CASO 7
If FI > FA And FI < FB And FF > FA And FF = FB Then
'INTERVALO=FB-FI O FF-FI
INTERVALO = DateDiff("d", FI, FB) + 1
MsgBox "DIAS " & " " & Str$(INTERVALO)
End If
Rem CASO 8
If FI > FA And FI < FB And FF > FA And FF < FB Then
'INTERVALO = FF - FI
INTERVALO = DateDiff("d", FI, FF) + 1
MsgBox "DIAS " & " " & Str$(INTERVALO)
End If
Rem CASO 9
If FI > FA And FI = FB And FF > FA And FF = FB Then
INTERVALO = 1
MsgBox "DIAS " & " " & Str$(INTERVALO)
End If
Rem CASO 10
If FI > FA And FI < FB And FF > FA And FF > FB Then
'INTERVALO = FB - FI
INTERVALO = DateDiff("d", FI, FB) + 1
MsgBox "DIAS " & " " & Str$(INTERVALO)
End If
Rem CASO 11
If FI > FA And FI = FB And FF > FA And FF > FB Then
INTERVALO = 1
MsgBox "DIAS " & " " & Str$(INTERVALO)
End If
Rem CASO 12
If FI > FA And FI > FB And FF > FA And FF > FB Then
INTERVALO = 0
MsgBox "DIAS " & " " & Str$(INTERVALO)
End If
Rem CASO 13
If FI < FA And FI < FB And FF > FA And FF > FB Then
'INTERVALO = FB - FA Then
INTERVALO = DateDiff("d", FA, FB) + 1
MsgBox "DIAS " & " " & Str$(INTERVALO)
End If
Rem CASO 14
If FI < FA And FI < FB And FF > FA And FF < FB Then
'INTERVALO = FF - FA
INTERVALO = DateDiff("d", FA, FF) + 1
MsgBox "DIAS " & " " & Str$(INTERVALO)
End If
Rem CASO 15
If FI < FA And FI < FB And FF > FA And FF = FB Then
'INTERVALO = FB - FA
INTERVALO = DateDiff("d", FA, FB) + 1
MsgBox "DIAS " & " " & Str$(INTERVALO)
End If
Case Is = FB
Rem CASO 61
If FI < FA And FF < FA Then
'INTERVALO = FB - FA
INTERVALO = 0
MsgBox "DIAS " & " " & Str$(INTERVALO)
End If
Rem CASO 62
If FI < FA And FF = FA Then
'INTERVALO = FB - FA
INTERVALO = 1
MsgBox "DIAS " & " " & Str$(INTERVALO)
End If
Rem CASO 63
If FI < FA And FF > FA Then
'INTERVALO = FB - FA
INTERVALO = 1
MsgBox "DIAS " & " " & Str$(INTERVALO)
End If
Rem CASO 64
If FI = FA And FF = FA Then
'INTERVALO = FB - FA
INTERVALO = 1
MsgBox "DIAS " & " " & Str$(INTERVALO)
End If
Rem CASO 65
If FI = FA And FF > FA Then
'INTERVALO = FB - FA
INTERVALO = 1
MsgBox "DIAS " & " " & Str$(INTERVALO)
End If
Rem CASO 66
If FI > FA And FF > FA Then
'INTERVALO = FB - FA
INTERVALO = 0
MsgBox "DIAS " & " " & Str$(INTERVALO)
End If
End Select
'MsgBox " " & Str$(INTERVALO)
End Function