Para todos aquellos que programan en VBA, les entrego una función que calcula las semanas del año, hay que recordar que estas varian dependiendo de si el año es bisiesto o no y algunos otros factores.
Aquí el código:
Function semanasdelaño(ultaño As Integer) As Integer
Dim iniaño As Date, finaño As Date, diniaño As Integer, diasaño As Integer, dfinaño As Integer, semaño As Integer
iniaño = CDate("01/01/" & CStr(ultaño))
finaño = CDate("31/12/" & CStr(ultaño))
diasaño = DateDiff("d", iniaño, finaño) + 1
diniaño = Weekday(iniaño)
dfinaño = Weekday(finaño)
If Not (diniaño = 1) Then
diasaño = diasaño + diniaño
End If
If Not (dfinaño = 7) Then
diasaño = diasaño - dfinaño
End If
semaño = diasaño \ 7
semanasdelaño = semaño
End Function
Si mejoran este código no duden en enviarlo para su publicación.






Comentarios
Function calculasemana(f echa As Date) As Integer
Dim ini As Date
Dim pridiaño As Integer
Dim dt As Integer
ini = CDate("01/01/" & CStr(Year(fecha )))
pridiaño = Weekday(ini)
dt = fecha - ini + pridiaño - 1
calculasemana = (dt 7) + 1
End Function
Function semanasdelaño(u ltaño As Integer) As Integer
Dim iniaño As Date, finaño As Date
iniaño = CDate("01/01/" & CStr(ultaño))
finaño = CDate("31/12/" & CStr(ultaño))
semanasdelaño = DateDiff("ww", iniaño, finaño)
End Function
Saludos,
Suscripción de noticias RSS para comentarios de esta entrada.