Hola, textbox cambia el formato de fecha a mm/dd/aaaa

Tengo un formulario y uno de los textbox hay que introducir la fecha por ejemplo 01/02/2014 y cuando acepto el formulario me cambia el formato que ha escrito en la celda a 02/01/2014. He visto en alguna respuesta la posibilidad de poner la siguiente línea:

Selection.NumberFormat = "d-m-yyyy;@"

Pero claro, al tener el textbox en un formulario no se en que lugar podría poner esa línea.

1 respuesta

Respuesta
1

'Cuando acepto el formulario'... en esa rutina, en alguna línea tenés el pase de ese textbox a la hoja y allí es donde tenés que colocarla.

Hay muchas maneras de escribir esta instrucción, no se cuál será la tuya, pero aquí te dejo un ejemplo para darte la idea:

Cells(fila,col) = textbox1

Cells(fila,col).NumberFormat = "d-m-yyyy;@"


PD) Excel toma los formatos de fecha y otros de la Configuración Regional de Windows.

Debieras revisar cual es tu formato en fechas allí.

Muchísimas gracias por la respuesta pero sigue sin funcionarme.La modificación que he hecho la he plasmado a continuación. (creo que la he hecho bien)

Private Sub cmdaceptafecha_Click()

'cuando pulso el cmd para aceptar la fecha
Sheets("datos").Select

' comprueba que el txtbox esta relleno
If Me.txtfecha.Text = "" Then MsgBox ("Debe indicar fecha"): Exit Sub

'le indico que tome el formato que me has indicado

Cells(7,8) = txtfecha
Cells(7,8).NumberFormat = "d-m-yyyy;@"
Sheets("Datos").Range("g8").Value = Me.txtfecha.Text
Unload Me

'cierra el formulario y compruebo que me lo ha vuelto a poner mal en la celda "g8"

he probado con Español alfabetizacion internacional y con español alfabetizacion tradicional y no hay manera.

saludos

Mucho no puedo hacer si desconozco dónde estás enviando los datos.

¿Cells(7,8) ... pero de qué hoja? Si es de la hoja Datos, tiene que ser después de que le envíes el dato del textbox. Solo va lo que queda entre las 2 líneas en negrita.

'le indico que tome el formato que me has indicado
Sheets("Datos").Range("g8").Value =.txtfecha.Text
Sheets("Datos").Range("g8").NumberFormat = "d-m-yyyy;@"
Unload Me


Otro detalle: los textbox son 'texto'. Así lo vas a mostrar con 'formato' fecha, pero es probable que si necesitas hacer alguna otra acción no te responda como una fecha.

Entonces debieras convertirla antes, quedando así:

'le indico que tome el formato que me has indicado
Sheets("Datos").Range("g8").Value =.CDate(txtfecha.Text)
Sheets("Datos").Range("g8").NumberFormat = "d-m-yyyy;@"
Unload Me


Alguna de las 2 soluciones aquí planteadas te resultara.



Añade tu respuesta

Haz clic para o

Más respuestas relacionadas