Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Días del mes con VBA

4,063 views
Skip to first unread message

Yrjo, Inc.

unread,
Feb 15, 2010, 4:55:29 PM2/15/10
to
Buenas tardes, en excel tengo una función =dia(fin.mes(fecha;0)) y me arroja
el número de días del mes de la fecha que le doy pero quisiera saber cómo
replico esta fórmula pero sobre código de VBA basado en una fecha que capturo
de una celda de excel.

Muchas gracias

Jorge Martínez

H�ctor Miguel

unread,
Feb 15, 2010, 8:07:42 PM2/15/10
to
hola, Jorge !

> ... en excel tengo una funcion =dia(fin.mes(fecha;0))
> y me arroja el numero de dias del mes de la fecha que le doy
> pero quisiera saber como replico esta formula pero sobre codigo de VBA
> basado en una fecha que capturo de una celda de excel...

para saber el ultimo dia del mes de una fecha, puedes preguntar por "el dia cero del siguiente mes" (p.e.)
UltimoDia = Day(DateSerial(a�o, mes + 1, 0))

o lo que es lo mismo..
UltimoDia = DateSerial(Year(fecha), Month(fecha) + 1, 0)

saludos,
hector.


Juan Español

unread,
Feb 15, 2010, 9:09:38 PM2/15/10
to
Este código de un botón te muestra un mensaje con la información que quieres
si la fecha está en la celda A10.
Adapta el código a tus circunstancias.

Private Sub CommandButton1_Click()
Dim fechaN As Single, AñoN, MesN As Integer
fechaN = Sheets(1).Cells(10, 1).Value
MesN = Month(fechaN)
AñoN = Year(fechaN)
MsgBox Day(DateSerial(AñoN, MesN + 1, 0) )
End Sub

Saludos.-

"Yrjo, Inc." <Yrj...@discussions.microsoft.com> escribió en el mensaje de
noticias news:EFCA317F-45B8-4430...@microsoft.com...

Yrjo, Inc.

unread,
Feb 16, 2010, 8:13:01 AM2/16/10
to
Muchas gracias por la ayuda

Jorge M

"Héctor Miguel" wrote:

> hola, Jorge !
>
> > ... en excel tengo una funcion =dia(fin.mes(fecha;0))
> > y me arroja el numero de dias del mes de la fecha que le doy
> > pero quisiera saber como replico esta formula pero sobre codigo de VBA
> > basado en una fecha que capturo de una celda de excel...
>
> para saber el ultimo dia del mes de una fecha, puedes preguntar por "el dia cero del siguiente mes" (p.e.)

> UltimoDia = Day(DateSerial(año, mes + 1, 0))


>
> o lo que es lo mismo..
> UltimoDia = DateSerial(Year(fecha), Month(fecha) + 1, 0)
>
> saludos,
> hector.
>
>

> .
>

cesara...@gmail.com

unread,
Apr 9, 2020, 5:46:36 PM4/9/20
to

Function ULTIMODIA(mes, year)

If year >= 0 Then
'verificando que el año sea bisiesto
If year Mod 4 = 0 And (year Mod 100 <> 0 Or year Mod 400 = 0) Then
bisiesto = 1
Else
bisiesto = 0
End If

'verificando que el mes se encuentre entre 1 y 12
If mes <= 12 Or mes >= 1 Then
If mes = 1 Or mes = 3 Or mes = 5 Or mes = 7 Or mes = 8 Or mes = 10 Or mes = 12 Then
ULTIMODIA = 31
End If
If mes = 4 Or mes = 6 Or mes = 9 Or mes = 11 Then
ULTIMODIA = 30
End If
If bisiesto = 1 And mes = 2 Then
ULTIMODIA = 29
End If

If bisiesto = 0 And mes = 2 Then
ULTIMODIA = 28
End If
End If
If mes > 12 Or mes < 1 Then
MsgBox "Corrige el número del mes"
End If
Else
MsgBox "Ingrese un año válido"
End If

End Function


0 new messages