Problemas con las fechas - Excel - VBA
Publicado por Santiago (5 intervenciones) el 17/06/2023 11:56:29
Hola:
Tengo un problema con las fechas. Os voy a meter mucho código, pero es sencillito:
En un punto de la aplicación tengo esta llamada:
Y esto me pinta:
06/12/2023
13/06/2023
14/06/2023
15/06/2023
16/06/2023
17/06/2023
Todas las celdas tienen el mismo formato: formato "Fecha".
El S.O. está en todo en Español- España.
A ver si lográis iluminarme.
Gracias.

¡¡Perdonad!!
Resuelto:
Por alguna razón (que desconozco), al pasarlo a string se gira la fecha:
Hojas.WsTareas.Cells(TareasFilas.FILA_FECHAS, TareasCol.COL_LUNES).Value = Format(DateAdd("d", 0, lunes), "dd/MM/yyyy")
Así sí funciona:
Hojas.WsTareas.Cells(TareasFilas.FILA_FECHAS, TareasCol.COL_LUNES).Value = lunes
Tengo un problema con las fechas. Os voy a meter mucho código, pero es sencillito:
En un punto de la aplicación tengo esta llamada:
1
MostrarPlanificacion Now
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Private Sub MostrarPlanificacion(ByVal fecha As Date)
Dim lunes As Date
lunes = GetLunes(fecha)
MuestraFechasSemana lunes
End Sub
' Esta función comprueba si la fecha es "Lunes" y si no, va descontando dia a dia hasta llegar al lunes
Private Function GetLunes(ByVal fecha As Date) As Date
If Format(fecha, "dd/MM/yyyy") = Format(Now, "dd/MM/yyyy") Then
Do While Weekday(fecha) <> vbMonday
fecha = DateAdd("d", -1, fecha)
Loop
Else
fecha = Hojas.WsTareas.Cells(TareasFilas.FILA_FECHAS, TareasCol.COL_LUNES).Value
End If
GetLunes = fecha
End Function
Private Sub MuestraFechasSemana(ByVal lunes As Date)
' El valor de la variable "lunes" es "12/06/2023 11:40:46" (visto con el debugger)
Hojas.WsTareas.Cells(TareasFilas.FILA_FECHAS, TareasCol.COL_LUNES).Value = Format(DateAdd("d", 0, lunes), "dd/MM/yyyy")
Hojas.WsTareas.Cells(TareasFilas.FILA_FECHAS, TareasCol.COL_MARTES).Value = Format(DateAdd("d", 1, lunes), "dd/MM/yyyy")
Hojas.WsTareas.Cells(TareasFilas.FILA_FECHAS, TareasCol.COL_MIERCOLES).Value = Format(DateAdd("d", 2, lunes), "dd/MM/yyyy")
Hojas.WsTareas.Cells(TareasFilas.FILA_FECHAS, TareasCol.COL_JUEVES).Value = Format(DateAdd("d", 3, lunes), "dd/MM/yyyy")
Hojas.WsTareas.Cells(TareasFilas.FILA_FECHAS, TareasCol.COL_VIERNES).Value = Format(DateAdd("d", 4, lunes), "dd/MM/yyyy")
Hojas.WsTareas.Cells(TareasFilas.FILA_FECHAS, TareasCol.COL_FIN_SEMANA).Value = Format(DateAdd("d", 5, lunes), "dd/MM/yyyy")
End Sub
Y esto me pinta:
06/12/2023
13/06/2023
14/06/2023
15/06/2023
16/06/2023
17/06/2023
Todas las celdas tienen el mismo formato: formato "Fecha".
El S.O. está en todo en Español- España.
A ver si lográis iluminarme.
Gracias.

¡¡Perdonad!!
Resuelto:
Por alguna razón (que desconozco), al pasarlo a string se gira la fecha:
Hojas.WsTareas.Cells(TareasFilas.FILA_FECHAS, TareasCol.COL_LUNES).Value = Format(DateAdd("d", 0, lunes), "dd/MM/yyyy")
Así sí funciona:
Hojas.WsTareas.Cells(TareasFilas.FILA_FECHAS, TareasCol.COL_LUNES).Value = lunes
Valora esta pregunta


0