Extraer de una fecha el numero de semana

Alguien me puede ayudar por favor a hacer una macro que me extraiga de una fecha el numero de la semana a la que corresponde esa fecha. Con una macro

1 Respuesta

Respuesta
1
Mejor que usar una macro es usar la fórmula de excel que viene predeterminada, que es la siguiente:
=DIASEM(E4;2)
. El primer parámetro es la celda en donde tienes la fecha que quieres averiguar el día.
. El segundo parámetro indica que numere al Lunes como 1 y así sucesivamente.
Igual te adjunto macro que hace lo mismo de la fórmula.
Esta macro te da el número de día de la semana
Sub diasemana()
'
' diasemana Macro
'
'
ActiveCell.FormulaR1C1 = "=WEEKDAY(RC[-1],2)"
End Sub
Si quieres cuéntame un poco más del problema para buscar una solución o si crees que es respuesta suficiente
Lo que necesito es el numero de la semana del año no el numero del día.
Ups... mi error... por leer apurado...
Entonces creo que la mejor solución es usar la siguiente fórmula...
=NUM.DE.SEMANA(E3)
Pero es con una macro
Ahí va la macro...
Sub numeroSemana()
'
' numeroSemana Macro
'
'
ActiveCell.FormulaR1C1 = "=WEEKNUM(11/12/2008)"
End Sub
No funciona
Lo que te envié es la instrucción de VBA para obtener el número de semana, tienes que aplicarla a tu caso, es decir (dirigirla a la celda que quieras, etc...)
Explicame un poco más que quieres hacer, por ejemplo, en donde tienes los datos que quieres ver el número de semana, en que formato tienes los datos, etc...
PUES: ¿Qué versión de excel tienes?
Mira tengo esta macro en un botón
semana = VBA.DatePart("ww", Cells(1, 1), vbMonday, vbFirstJan1)
Range("b1").Value = semana - 1
Lo que hace la macro en este momento es de la celda a1 donde tengo una fecha saca el numero de la semana y me lo lleva a b1
solo esa por la referencia que le doy Cells(1, 1), y Range("b1"). Value
pero necesito que al ejecutar la macro recorra todas las celdas que tienen fecha en la columna a y al frente en la columna b me ponga el resultado
no se si me haga entender
Adjunto una macro que recorre las primeras 10 filas de la columna A y te pone en la columna B el resultado de la semana... lo único que hice es agregar un ciclo for..
Si necesitas otro tipo de validación (por ejemplo si tienes datos mezclados y no solo fechas) avísame y veo como te puedo ayudar...
Sub fecha()
For i = 1 To 10
semana = VBA.DatePart("ww", Cells(i, 1), vbMonday, vbFirstJan1)
Cells(i, 2).Value = semana - 1
Next i
End Sub
Nada,
me muestra fechas y lo que necesito es el numero de la semana a la que corresponde la fecha
A mi me funciona... quizás tienes el formato de la columna B como fecha, prueba a ponerlo en formato número.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas