Jump to content
Sign in to follow this  
marroco312

ANSWERED SABER EN QUE SEMANA DEL MES ESTAMOS TRABAJANDO

Recommended Posts

Cordial saludos

Este tema macro trata de saber en que semana del mes se esta trabajando de acuerdo a un parámetro establecido el cual es la semana 1 inicia el primer dia del mes y termina el primer sábado del mes, luego el primer domingo hasta el sábado es la segunda semana y así sucesivamente hasta obtener el numero de la semana del mes,

 

he colocado ejemplos, que van de agosto a noviembre, la idea tener parametrizado este procedimiento  y no he podido dar con el código, ya que me toca mes a mes la misma secuencia.

image.thumb.png.20e855c7b7990e96768b1c74cb32550c.png

               
  Gracias por su colaboración.              

 

fecha en semana.xlsm

Share this post


Link to post
Share on other sites

Te dejo esta UDF, observa las fórmulas de las columnas F y K del adjunto.

Function Semana(ByVal Mes As String, _
                ByVal Día As String, _
                ByVal Año As String) As Variant
Dim Meses(12) As String, M As Integer
Dim Fecha As Date, Sábado As Date
Semana = ""
If Not IsNumeric(Día) Then Exit Function
If Not IsNumeric(Año) Then Exit Function
For M = 1 To 12: Meses(M) = UCase(MonthName(M)): Next
For M = 1 To 12
   If Trim(UCase(Mes)) = Meses(M) Then Exit For
Next
If M > 12 Then Exit Function
Sábado = CDate(1 & "/" & M & "/" & Año)
Do Until Weekday(Sábado, vbMonday) = 6:
   Sábado = Sábado + 1
Loop
Fecha = CDate(Día & "/" & M & "/" & Año)
Semana = 1
Do Until Sábado > Fecha
   Semana = Semana + 1
   Sábado = Sábado + 7
Loop
End Function

 

fecha en semana.xlsm

Edited by Antoni

Share this post


Link to post
Share on other sites

cordial saludos,

 

esta interesante el UDF,  pero no es lo que requiero.

 

la idea es que si dígito por ejemplo la fecha 05/01/2020 osea el 5 de enero del 2020, la semana seria la numero 2, o si yo pongo 05/09/2019 la semana seria la numero 1, ya que la condición es la siguiente:

el primer sábado de cada mes es donde termina la primer semana

el segundo sábado de cada mes es donde termina la segunda semana

el tercer sábado de cada mes es donde termina la terce semana y asi sucesivamente

gracias por su colaboración y tiempo

Share this post


Link to post
Share on other sites

A ver si ahora nos entendemos.

Function Semana(ByVal Celda As String) As Variant
Dim Sábado As Date
Semana = ""
If Not IsDate(Celda) Then Exit Function
Fecha = CDate(Celda)
Sábado = CDate(1 & "/" & Month(Fecha) & "/" & Year(Fecha))
Do Until Weekday(Sábado) = vbSaturday
   Sábado = Sábado + 1
Loop
Semana = 1
Do Until Sábado > Fecha
   Semana = Semana + 1
   Sábado = Sábado + 7
Loop
End Function

 

fecha en semana.xlsm

Share this post


Link to post
Share on other sites
Hace 10 horas, Silvia dijo:

hola marroco312  (y Gran Antoni ♥♥♥♥♥)

 

Tengo un amiguito que me ha pedido que te envíe esta fórmula,  tal vez también podría serte de utilidad.


=2+ENTERO((DIA(A1)-9+DIASEM(A1-DIA(A1)+1))/7)

 

saludos,

Silvia

 

¡Espectacular! 👍 😘

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×
×
  • Create New...

Important Information

Privacy Policy