** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - error en suma de dias y fecha
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoerror en suma de dias y fecha

 Responder Responder
Autor
Mensaje
atecocoli Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 27/Octubre/2014
Localización: Mexico
Estado: Sin conexión
Puntos: 12
Enlace directo a este mensaje Tema: error en suma de dias y fecha
    Enviado: 27/Octubre/2014 a las 19:49
tengo un formulario VBA donde en ciertos textbox tengo fecha y en otro tengo numero de días y en el tercero me tiene que dar la suma de días con fecha nueva pero al correrlo solo me da en el tercer textbox 01/01/1900 y no cambia para nada les dejo aquí el código y de antemano les agradezco sus amables respuestas:


Dim fecha As Date
Private Sub TextBox4_Change()
TextBox5 = ""
TextBox7 = ""
End Sub

Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox4.Value = Format(TextBox4, "dd/mm/yyyy")
fecha = TextBox4.Value
End Sub


Private Sub TextBox5_Change()
Dim fecha As Date
TextBox7.Value = fecha + Val(TextBox5.Value)
End Sub

Private Sub TextBox7_Change()
TextBox7.Value = Format(TextBox7, "dd/mm/yyyy")
End Sub  ---------------------------- aqui es donde me da 01/01/1900 y no cambia por nada la fecha
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: Binghamton NY.
Estado: Sin conexión
Puntos: 3452
Enlace directo a este mensaje Enviado: 28/Octubre/2014 a las 02:04
Tienes fecha como variable global y como variable local

Luis
El Búho es mi ídolo caido
Arriba
atecocoli Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 27/Octubre/2014
Localización: Mexico
Estado: Sin conexión
Puntos: 12
Enlace directo a este mensaje Enviado: 28/Octubre/2014 a las 02:31
Publicado originalmente por lbauluz lbauluz escribió:

Tienes fecha como variable global y como variable local

Luis

perdón soy nuevo en esto no te entendí? que es lo que tengo que hacer para que quede bien? no se si me podrías ayudar gracias
Arriba
E. Feijoo Ver desplegable
Moderador
Moderador


Unido: 16/Abril/2004
Localización: España
Estado: Sin conexión
Puntos: 19948
Enlace directo a este mensaje Enviado: 28/Octubre/2014 a las 08:22
Publicado originalmente por atecocoli atecocoli escribió:

Publicado originalmente por lbauluz lbauluz escribió:

Tienes fecha como variable global y como variable local

Luis


perdón soy nuevo en esto no te entendí? que es lo que tengo que hacer para que quede bien? no se si me podrías ayudar gracias


Si yo también cito y el que responda a cualquier mensaje también cita .... ¿al final que saldrá en el mensaje final con ciento cincuenta citas combinadas?

El que desee seguir la secuencia lo tiene 'tan sencillo' como leer el hilo desde su inicio, mas limpio, mas breve, mas fácil de mantener el orden y seguimiento ¿Por qué será que el resto de los participantes lo hace así?

Por favor: cita solo cuando sea necesario o mejor ... cuando sea indispensable, pues el hilo es monotemático para la cuestión que plantees (cada pregunta deberá tener su 'propio hilo' según las normas)
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5579
Enlace directo a este mensaje Enviado: 28/Octubre/2014 a las 12:32
 

Dim fecha As Date ' <<< Esta es fecha global (está fuera de los módulos y permanece para todos ellos).

 
Private Sub TextBox4_Change()

TextBox5 = ""

TextBox7 = ""

End Sub

 
Private Sub TextBox5_Change()

Dim fecha As Date ' <<< Esta es fecha local (está dentro de un módulo, solo vale para este módulo pero tiene prioridad sobre la global).

TextBox7.Value = fecha + Val(TextBox5.Value) ' Aquí la fecha vale 0 (cero) ya que no se le ha asignado ningún valor.

End Sub

 
----------------------------------------------------------
 

Prueba con:

 
Dim fecha As Date, dias#

Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)

  TextBox4.Value = Format(TextBox4, "dd/mm/yyyy")

  fecha = TextBox4.Value

  FechaHasta

End Sub

 
Private Sub TextBox5_Change()

  dias = Val(TextBox5.Value)

  FechaHasta

End Sub

 
Private Sub FechaHasta()

  TextBox7.Value = Format(fecha + dias, "dd/mm/yyyy")

End Sub

 
 
Aprendemos intentando resolver dudas ajenas (ayuda cuando puedas/sepas).

Mi sitio_web con ejemplos Excel.
Arriba
atecocoli Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 27/Octubre/2014
Localización: Mexico
Estado: Sin conexión
Puntos: 12
Enlace directo a este mensaje Enviado: 28/Octubre/2014 a las 17:46
@An San Val en el texbox7 me sigue dando esta fecha y no cambia por nada 30/12/1899 con el código que me pusiste lo cual te agradezco también no se si se me permita ponerte todo el formulario completo para que puedas tener un mejor panorama?
Arriba
emiliove Ver desplegable
Moderador
Moderador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5109
Enlace directo a este mensaje Enviado: 28/Octubre/2014 a las 17:50
Tienes que considerar, que existen palabras Reservadas en access y fecha es una de ellas, antes que hagas algo por que no le cambias el nombre a ver si es por eso.
 
Saludos.
Arriba
atecocoli Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 27/Octubre/2014
Localización: Mexico
Estado: Sin conexión
Puntos: 12
Enlace directo a este mensaje Enviado: 28/Octubre/2014 a las 18:05
Corrección ya corrió como quería con el código que me puso AnSanVal solo lo subí al inicio de el formulario y ahí funciono a la primera les agradezco mucho su apoyo y si alguien necesita todo el formulario cuenten con el, por favor si gustan cerrar el hilo ya esta resuelto gracias nuevamente

Editado por atecocoli - 28/Octubre/2014 a las 18:05
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5579
Enlace directo a este mensaje Enviado: 28/Octubre/2014 a las 18:20
Yo he hecho la prueba con un formulario (UserForm1) que contiene 3 cuadros de texto (TextBox4, TextBox5 y TextBox7) y como único código el que te he ofrecido.
 
Escribo una fecha en TextBox4 "12/4" (sin comillas) y pulso INTRO, me muestra en TextBox4 12/04/2014 y en TextBox7 lo mismo, escribo un número en TextBox5 "12", al escribir el "1", en TextBox7 me muestra 13/04/2014 (1 día más que la fecha de TextBox4) y al escribir el 2, en TextBox7 me muestra 24/04/2014 (12 días más que la fecha de TextBox4).
 
Supongo que eso es lo que pretendes.
 
 
De cualquier modo prueba con lo comentado por emiliove (en informática nunca se sabe) por ejemplo en lugar de fecha podrias intentar con miFecha, aunque en VBA creo que fecha no es una palabra reservada ya que se utiliza DATE (aunque si está reservada en Excel).
 
 
Editado: Lo siento, no habia leido tu último mensaje. Hilo cerrado


Editado por AnSanVal - 28/Octubre/2014 a las 18:22
Aprendemos intentando resolver dudas ajenas (ayuda cuando puedas/sepas).

Mi sitio_web con ejemplos Excel.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable