funcion fin.mes pero con vba

01/07/2009 - 23:36 por Yrjo, Inc. | Informe spam
Buenas tardes, necesito hacer la misma operación que utilizo con la función
fin.mes pero con vba.

v.g.
=DIA(FIN.MES("03/07/2009";0)) da como resultado 31
=DIA(FIN.MES("03/02/2009";0)) da como resultado 28

Cuál es la función equivalente a fin.mes con vba?

Muchas gracias por la ayuda

Jorge M
 

Leer las respuestas

#1 jose
02/07/2009 - 00:17 | Informe spam
Public Function FinMes(InputDate As Date, Optional MonthsToAdd As Integer)
Dim TotalMonths As Integer
Dim NewMonth As Integer
Dim NewYear As Integer

If IsMissing(MonthsToAdd) Then
MonthsToAdd = 0
End If

TotalMonths = Month(InputDate) + MonthsToAdd
NewMonth = TotalMonths - (12 * Int(TotalMonths / 12))
NewYear = Year(InputDate) + Int(TotalMonths / 12)

If NewMonth = 0 Then
NewMonth = 12
NewYear = NewYear - 1
End If

Select Case NewMonth
Case 1, 3, 5, 7, 8, 10, 12
FinMes = DateSerial(NewYear, NewMonth, 31)
Case 4, 6, 9, 11
FinMes = DateSerial(NewYear, NewMonth, 30)
Case 2
If Int(NewYear / 4) = NewYear / 4 Then
FinMes = DateSerial(NewYear, NewMonth, 29)
Else
FinMes = DateSerial(NewYear, NewMonth, 28)
End If
End Select
End Function



"Yrjo, Inc." wrote:

Buenas tardes, necesito hacer la misma operación que utilizo con la función
fin.mes pero con vba.

v.g.
=DIA(FIN.MES("03/07/2009";0)) da como resultado 31
=DIA(FIN.MES("03/02/2009";0)) da como resultado 28

Cuál es la función equivalente a fin.mes con vba?

Muchas gracias por la ayuda

Jorge M

Preguntas similares