Como corregir el registro de una fecha al ejecutar una macro vba

Al ejecutar una macro la decha que ingreso me sale al revés al momento de ser registrado

La fecha normal seria 12/07/2014 ( dd, mm, yy) pero al momento de registrarla con la macro me devuelve la fecha al revés 07/12/2014 (mm, dd, yy).

He revisado la validación de la hoja excel y esta bien, también he revisado la configuración y esta bien, así que supongo es algo que tiene que ver con la macro.

1 Respuesta

Respuesta
1

¿Cómo tienes la instrucción en tu macro para registrar en la hoja?

Por ejemplo: si tienes esto

range("D5") = fecha

Puedes ponerlo así

Range("D5") = format(fecha, "mm/dd/yyyy")

Aunque veas en el formato esto: "mm/dd/yyyy", realmente te va a poner en la celda dd/mm/yyyy, esto se debe a que las fechas son almacenadas en con el formato inglés, ya que el código y excel está hecho en inglés. Ahora solamente nos queda manipular el formato para ponerlo en el formato que necesitamos.

En realidad no tengo ninguna instrucción para la fecha, lo que hace la macro es copiar el txtfecha en una de las celdas de la columna "D" la cual la valide con formato fecha y nada más :( ¿qué podría hacer?

Pero no pusiste el código que tienes.

Supongo que tienes esto

range("D5") = txtfecha

Entonces ponlo así:

Range("D5") = Format(txtfecha, "mm/dd/yyyy")

lo que tengo es esto, copiar el txtfecha en el lugar que se indica

Private Sub CommandButton3_Click()
'copiando entradas en la hija SALIDAS
Sheets("SALIDAS").Select
Range("A" & Range("A" & Rows.Count).End(xlUp).Row + 1).Select

ActiveCell.Offset(0, 5).Value = txtfecha.Text

y en txtfecha esta vacio

Private Sub txtfecha_Change()

End Sub

Cambia esto

ActiveCell.Offset(0, 5).Value = txtfecha.Text

Por esto

ActiveCell.Offset(0, 5).Value = Format(txtfecha, "mm/dd/yyyy")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas