Fecha con formato año mes día hora minuto y segundo

Tengo una macro que escribe la fecha en formato aaaammddhhmmss, pero el problema que tengo es que si el mes es de menos de 2 dígitos (por ejemplo julio) lo muestra solamente como 7 y no como 07, igual sucede con las horas, los minutos y los segundos; luego que los datos estén correctos quisiera que me escriba el dato en una celda específica (ejemplo B2). La macro es la siguiente:

Sub fecha_actual()
Dim ahora As String
Dim año As String
Dim mes As String
Dim dia As String
Dim hora As String
Dim minuto As String
Dim segundo As String
Dim FHMS As String

ahora = Now
año = Year(Now)
mes = Month(Now)
dia = Day(Now)
hora = Hour(Now)
minuto = Minute(Now)
segundo = Second(Now)
FHMS = año & mes & dia & hora & minuto & segundo
MsgBox FHMS
End Sub

Respuesta
2

Si quieres la fecha actual con hora y que la fecha sea una fecha válida para excel:

Range("B2").Value = Now()

Dale formato a la celda B2 para que se muestren los segundos.


Si quieres la fecha y hora sean textos:

Range("B2").Value = "'" & Format(Now(), "yyyymmddhhmmss")

O si quieres algún formato especial:

Range("B2").Value = Format(Now(), "yyyymmdd hh:mm:ss")

O también:

Range("B2").Value = "'" & Format(Now(), "yyyy/mm/dd hh:mm:ss")

Revisa bien los ejemplos. Si lo quieres como texto debes anteceder

"'" & 

Si lo quieres como fecha:

Range("B2").Value = Format(Now(), "yyyy/mm/dd hh:mm:ss")

También revisa el formato en la celda para que se puedan ver los segundos.


[Sal u dos

1 respuesta más de otro experto

Respuesta
2

Prueba esta modificación a tu macro, antes de que la ponga en una celda le agregue a la cadena un espacio en blanco de lo contrario te lo va a poner como si fuera fecha.

Sub calcular_fechas()
Dim ahora As String
Dim año As String
Dim mes As String
Dim dia As String
Dim hora As String
Dim minuto As String
Dim segundo As String
Dim FHMS As String
fecha = Now()
año = Year(fecha)
mes = Format(Month(fecha), "00")
dia = Format(Day(fecha), "00")
hora = Format(Hour(fecha), "00")
minutos = Format(Minute(fecha), "00")
segundos = Format(Second(fecha), "00")
FHMS = " " & año & "/" & mes & "/" & dia & "  " & hora & ":" & minutos & ":" & segundos
Range("b2") = FHMS
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas