Excel - Manejo correcto de fechas en VBA Excel

   
Vista:

Manejo correcto de fechas en VBA Excel

Publicado por Raziel (243 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
información
Otras secciones de LWP con contenido de Excel
- Código fuente de Excel
- Cursos de Excel
- Temas de Excel
- Chat de Excel
información
Códigos de Excel
- CARDEX
- Calculo de fechas
- Resolución de sudoku
Imágen de perfil de JuanC

Manejo correcto de fechas en VBA Excel

Publicado por JuanC juanc2942@gmail.com (1053 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 (243 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 juanc2942@gmail.com (1053 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