Excel - Manejo correcto de fechas en VBA Excel

 
Vista:

Manejo correcto de fechas en VBA Excel

Publicado por Raziel (245 intervenciones) el 01/02/2014 18:59:17
Estimados expertos, estoy elaborando en un pequeño formulario en Excel y me encuentro con el problema de que al pasar la fecha de un textbox a una celda, me invierte la posición del día y del mes, esto debido a que yo uso como método de captura "DD/MM/AAAA" pero Excel internamente obedece al sistema americano "MM/DD/AAAA".

Se que la función DateSerial ayuda con este problema pero francamente no comprendo como implementarla. Entonces, cuál seria la solución a mi problema y cuál es la mejor forma de trabajar con fechas?

Saludos y gracias por los comentarios.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JuanC

Manejo correcto de fechas en VBA Excel

Publicado por JuanC (1237 intervenciones) el 01/02/2014 19:10:30
para no lidiar con fechas yo suelo convertirlas a texto anteponiendo un caracter numeral (#)...

Saludos, desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Manejo correcto de fechas en VBA Excel

Publicado por Raziel (245 intervenciones) el 04/02/2014 20:32:15
Bueno, para los que lleguen aquí buscando respuesta encontré el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim dDate As Date
Private Sub CommandButton1_Click()
Range("G1").Value = dDate
End Sub
 
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If Mid(TextBox1.Value, 4, 2) > 12 Then
    MsgBox "Invalid date, please re-enter", vbCritical
    TextBox1.Value = vbNullString
    TextBox1.SetFocus
    Exit Sub
End If
dDate = DateSerial(Year(Date), Month(Date), Day(Date))
TextBox1.Value = Format(TextBox1.Value, "dd/mm/yyyy")
dDate = TextBox1.Value
End Sub

Resuelve mi problema inicial pero sigo sin comprender del todo la forma en que se aplica la función DateSerial.
Saludos.

Fuente del código: http://www.ozgrid.com/forum/showthread.php?t=27977

P.D. Muchas gracias por la sugerencia JuanC, las fechas son realmente un dolor de cabeza para lo que somos menos diestros en estos menesteres.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JuanC

Manejo correcto de fechas en VBA Excel

Publicado por JuanC (1237 intervenciones) el 04/02/2014 22:28:02
la verdad que DateSerial en este caso no tiene sentido...
con algo así es suficiente...

1
dDate = Format(Date, "dd/mm/yyyy")


Saludos, desde Baires, JuanC

PD: el asunto fecha es 'complicado' porque depende de la configuración regional de la PC...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Manejo correcto de fechas en VBA Excel

Publicado por Betún (1 intervención) el 01/06/2016 10:03:37
Otra opción es pedir dia, mes y año por separado y luego concatenar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Manejo correcto de fechas en VBA Excel

Publicado por LUIS (1 intervención) el 09/04/2019 20:08:16
NO FUNCIONA LA EL FORMAT(DATE, "DD,MM,YYYY") YA QUE EN LOS DIAS DEL 1 AL 11 PONE MES DIA AÑO Y DEL 12 EN ADELANTE PONE DIA MES AÑO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Manejo correcto de fechas en VBA Excel

Publicado por daniela (1 intervención) el 09/09/2020 20:01:53
Tengo el mismo problema. tengo una tabla de excel larguísima que se exporto de un programa de laboratorio. en este excel me exporta por un lado un columna con la fecha en que se realizó la determinación y en otro la fecha de nacimiento. En la primera, como se exportan ordenadas yo puedo darme cuenta que en algunas las fechas estan invertidas, del 1 a 12 tiene formato de numero, pero cuando lo paso a fecha toma el dia como mes, y del 13 al 31 me las exporta como un texto. El problema es que cualquier funcion que yo quiera aplicar no funcionara igual para los dos tipos de formatos!! en uno funciona pero en el otro no!
TEXT(A2;"dd/mm/yyyy")
INT(A33)

el problema es aun peor con las fechas de nacimiento porq ahi no tengo forma de darme cuenta si esta bien o mal!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Manejo correcto de fechas en VBA Excel

Publicado por Antoni Masana (2463 intervenciones) el 10/09/2020 09:58:57
Abre una nueva consulta.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar