| |  |  | Miembros: Mensajes: Temas: Online: Ultimo Miembro: | | |  | | | 
| 
12-10-2006, 21:12:15
| | Un Nuevo Amigo | | Registrado: oct 2006 Posts: 4
| | Obtener dias, meses y años de la resta de dos fechas Hola, Soy nuevo y acabo de registrarme con la intecion de recibr ayuda de ustedes genios.
La consulta es. Como puedo obtener despues de restar dos fechas, los dias, los meses que hay entre ambas fechas.
¿¿ se puede? ¡como!.
Gracias estaré esperando ya que lo necesito para un trabajo.
Atte Claudio
__________________
Dios te Ama
| 
13-10-2006, 08:10:08
|  | Administrator | | Registrado: dic 2002 Ubicación: BURGOS - ESPAÑA Posts: 5.268
| | Hola, amigo samgar: En primer lugar bienvenido al foro y gracias por tu confianza.
En segundo lugar, te aconsejo que utilices el foro adecuado a tu pregunta, puesto que ésta se corresponde con el foro de Visual Basic 6.0 y no con la VBA...
Y finalmente, no entiendo con suficiente claridad tu problema, aunque me supongo que lo que quieres es conocer la diferencia entre dos fechas, expresada en años, meses y días
Voy a intentar ayudarte de la mejor manera posible: darte la pauta para que lo hagas por ti mismo, en lugar de darte la solución masticada y digerida... Entra en la Ayuda del propio Visual Studio y escribe la palabra DateDiff, y vas probando con el primer parámetro de dicha función, poniendo "yyyy" para obtener los años, "m" para los meses y "d" para los días. Seguro que consigues tu propósito sin esfuerzo; y si te atascas, ya sabes... añades una nueva pregunta en este mismo post... Suerte. | 
17-10-2006, 18:23:50
| | Un Nuevo Amigo | | Registrado: oct 2006 Posts: 4
| | Hola
No puedo dar con el Datediff, no sé que es, no sé si puede poner en Excel, ya que es allí donde necesito esta funcion, me pueden orientar, basicamente lo que necesito es:
Obtener , la cantidad de años, meses y dias, en la resta de dos fechas en EXCEL.
¿ Se puede ?, ¿ como lo hago ?
GRacias
__________________
Dios te Ama
| 
17-10-2006, 19:38:39
|  | Administrator | | Registrado: dic 2002 Ubicación: BURGOS - ESPAÑA Posts: 5.268
| | Bueno, perdona... Por eso yo te decía que la pregunta correspondía al Foro de VB... convencido de que era así... Y por eso no encuentras DateDiff, porque es una función de Visual. La verdad es que no sé cómo se puede hacer en Excel. Espero que algún especialista entre en nuestra ayuda... | 
17-10-2006, 19:41:19
| | Un Nuevo Amigo | | Registrado: oct 2006 Posts: 4
| | ok, espero que si sabes algo me lo hagas saber, y si yo sé algo lo pondré
gracias
__________________
Dios te Ama
| 
05-11-2006, 04:11:05
| | Un Nuevo Amigo | | Registrado: oct 2006 Posts: 4
| | saludos :smt001
aca entrego una secuencia (es mi primer mensaje aqui :P)
espero te guste saca una diferencia en dias, entre una cantidad de años
y esta fijada a un boton para excel
Private Sub CommandButton1_Click()
tc = Val(InputBox("ingrese un año ", "Inicio", 0))
x = InputBox("ingrese un dia de este año ", "Inicio", 1)
y = InputBox("ingrese un mes de este año ", "Inicio", 1)
If tc Mod 4 = 0 Then
If x > 29 And y = 2 Then
MsgBox ("Error Febrero sólo tiene 29 dias como maximo")
End
ElseIf y = 1 Xor y = 3 Xor y = 5 Xor y = 7 Xor y = 8 Xor y = 10 Xor y = 12 Then
If x > 31 Then
MsgBox ("Error, este mes no tiene mas de 31 dias")
End
End If
ElseIf y = 4 Xor y = 6 Xor y = 9 Xor y = 11 Then
If x > 30 Then
MsgBox ("Error, este mes no tiene mas de 30 dias")
End
End If
End If
Else
If x > 28 And y = 2 Then
MsgBox ("Error Febrero sólo tiene 28 dias como maximo")
End
ElseIf y = 1 Xor y = 3 Xor y = 5 Xor y = 7 Xor y = 8 Xor y = 10 Xor y = 12 Then
If x > 31 Then
MsgBox ("Error, este mes no tiene mas de 31 dias")
End
End If
ElseIf y = 4 Xor y = 6 Xor y = 9 Xor y = 11 Then
If x > 30 Then
MsgBox ("Error, este mes no tiene mas de 30 dias")
End
End If
End If
End If
If y > 12 Then
MsgBox ("Error, No Existen mas de 12 meses")
End
End If
td = Val(InputBox("ingrese un año ", "Inicio", 1))
z = InputBox("ingrese un dia de este año ", "Inicio", 1)
w = InputBox("ingrese un mes de este año ", "Inicio", 1)
If w > 12 Then
MsgBox ("Error, No Existen mas de 12 meses")
End
End If
If td Mod 4 = 0 Then
If z > 29 And y = 2 Then
MsgBox ("Error Febrero sólo tiene 29 dias como maximo")
End
ElseIf y = 1 Xor y = 3 Xor y = 5 Xor y = 7 Xor y = 8 Xor y = 10 Xor y = 12 Then
If z > 31 Then
MsgBox ("Error, este mes no tiene mas de 31 dias")
End
End If
ElseIf y = 4 Xor y = 6 Xor y = 9 Xor y = 11 Then
If z > 30 Then
MsgBox ("Error, este mes no tiene mas de 30 dias")
End
End If
End If
Else
If z > 28 And w = 2 Then
MsgBox ("Error Febrero sólo tiene 28 dias como maximo")
End
ElseIf w = 1 Xor w = 3 Xor w = 5 Xor w = 7 Xor w = 8 Xor w = 10 Xor w = 12 Then
If z > 31 Then
MsgBox ("Error, este mes no tiene mas de 31 dias")
End
End If
ElseIf w = 4 Xor w = 6 Xor w = 9 Xor w = 11 Then
If z > 30 Then
MsgBox ("Error, este mes no tiene mas de 30 dias")
End
End If
End If
End If
dias = 0
For a = 1 To y - 1
If a = 1 Xor a = 3 Xor a = 5 Xor a = 7 Xor a = 8 Xor a = 10 Xor a = 12 Then
lala = 31
ElseIf a = 4 Xor a = 6 Xor a = 9 Xor a = 11 Then
lala = 30
ElseIf a = 2 Then
If tc Mod 4 = 0 Then
lala = 29
Else
lala = 28
End If
End If
dias = dias + lala
Next a
dias = dias + x
For b = 1 To w - 1
If b = 1 Xor b = 3 Xor b = 5 Xor b = 7 Xor b = 8 Xor b = 10 Xor b = 12 Then
days = 31
ElseIf b = 4 Xor b = 6 Xor b = 9 Xor b = 11 Then
days = 30
ElseIf b = 2 Then
If td Mod 4 = 0 Then
days = 29
Else
days = 28
End If
End If
diaz = diaz + days
Next b
diaz = diaz + z
years = 0
If tc > td Then
p = td
td = tc
tc = p
End If
For i = tc To td - 1
If i Mod 4 = 0 Then
año = 366
Else
año = 365
End If
years = years + año
Next i
dif = Abs(years) - dias + diaz
MsgBox ("Estas Fechas distan en " & dif & " Días")
End Sub
ahora si quieres puedes transformar los dias a años y meses...
espero sea de utilidad :P
y ojala no tenga errores :P | 
06-11-2006, 11:55:25
| | Un Nuevo Amigo | | Registrado: oct 2006 Posts: 4
| | Obtener, dias meses y años en excel Ok, agradezco la ayuda, pero no se como funciona, ¿que debo hacer?, cargarla como macro, y despues ¿como la hago funcionar?....disculpa la ignorancia.
Claudio Cita: |
Empezado por mitimae saludos :smt001
aca entrego una secuencia (es mi primer mensaje aqui :P)
espero te guste saca una diferencia en dias, entre una cantidad de años
y esta fijada a un boton para excel
Private Sub CommandButton1_Click()
tc = Val(InputBox("ingrese un año ", "Inicio", 0))
x = InputBox("ingrese un dia de este año ", "Inicio", 1)
y = InputBox("ingrese un mes de este año ", "Inicio", 1)
If tc Mod 4 = 0 Then
If x > 29 And y = 2 Then
MsgBox ("Error Febrero sólo tiene 29 dias como maximo")
End
ElseIf y = 1 Xor y = 3 Xor y = 5 Xor y = 7 Xor y = 8 Xor y = 10 Xor y = 12 Then
If x > 31 Then
MsgBox ("Error, este mes no tiene mas de 31 dias")
End
End If
ElseIf y = 4 Xor y = 6 Xor y = 9 Xor y = 11 Then
If x > 30 Then
MsgBox ("Error, este mes no tiene mas de 30 dias")
End
End If
End If
Else
If x > 28 And y = 2 Then
MsgBox ("Error Febrero sólo tiene 28 dias como maximo")
End
ElseIf y = 1 Xor y = 3 Xor y = 5 Xor y = 7 Xor y = 8 Xor y = 10 Xor y = 12 Then
If x > 31 Then
MsgBox ("Error, este mes no tiene mas de 31 dias")
End
End If
ElseIf y = 4 Xor y = 6 Xor y = 9 Xor y = 11 Then
If x > 30 Then
MsgBox ("Error, este mes no tiene mas de 30 dias")
End
End If
End If
End If
If y > 12 Then
MsgBox ("Error, No Existen mas de 12 meses")
End
End If
td = Val(InputBox("ingrese un año ", "Inicio", 1))
z = InputBox("ingrese un dia de este año ", "Inicio", 1)
w = InputBox("ingrese un mes de este año ", "Inicio", 1)
If w > 12 Then
MsgBox ("Error, No Existen mas de 12 meses")
End
End If
If td Mod 4 = 0 Then
If z > 29 And y = 2 Then
MsgBox ("Error Febrero sólo tiene 29 dias como maximo")
End
ElseIf y = 1 Xor y = 3 Xor y = 5 Xor y = 7 Xor y = 8 Xor y = 10 Xor y = 12 Then
If z > 31 Then
MsgBox ("Error, este mes no tiene mas de 31 dias")
End
End If
ElseIf y = 4 Xor y = 6 Xor y = 9 Xor y = 11 Then
If z > 30 Then
MsgBox ("Error, este mes no tiene mas de 30 dias")
End
End If
End If
Else
If z > 28 And w = 2 Then
MsgBox ("Error Febrero sólo tiene 28 dias como maximo")
End
ElseIf w = 1 Xor w = 3 Xor w = 5 Xor w = 7 Xor w = 8 Xor w = 10 Xor w = 12 Then
If z > 31 Then
MsgBox ("Error, este mes no tiene mas de 31 dias")
End
End If
ElseIf w = 4 Xor w = 6 Xor w = 9 Xor w = 11 Then
If z > 30 Then
MsgBox ("Error, este mes no tiene mas de 30 dias")
End
End If
End If
End If
dias = 0
For a = 1 To y - 1
If a = 1 Xor a = 3 Xor a = 5 Xor a = 7 Xor a = 8 Xor a = 10 Xor a = 12 Then
lala = 31
ElseIf a = 4 Xor a = 6 Xor a = 9 Xor a = 11 Then
lala = 30
ElseIf a = 2 Then
If tc Mod 4 = 0 Then
lala = 29
Else
lala = 28
End If
End If
dias = dias + lala
Next a
dias = dias + x
For b = 1 To w - 1
If b = 1 Xor b = 3 Xor b = 5 Xor b = 7 Xor b = 8 Xor b = 10 Xor b = 12 Then
days = 31
ElseIf b = 4 Xor b = 6 Xor b = 9 Xor b = 11 Then
days = 30
ElseIf b = 2 Then
If td Mod 4 = 0 Then
days = 29
Else
days = 28
End If
End If
diaz = diaz + days
Next b
diaz = diaz + z
years = 0
If tc > td Then
p = td
td = tc
tc = p
End If
For i = tc To td - 1
If i Mod 4 = 0 Then
año = 366
Else
año = 365
End If
years = years + año
Next i
dif = Abs(years) - dias + diaz
MsgBox ("Estas Fechas distan en " & dif & " Días")
End Sub
ahora si quieres puedes transformar los dias a años y meses...
espero sea de utilidad :P
y ojala no tenga errores :P |
__________________
Dios te Ama
| 
22-11-2006, 21:47:29
| | Un Nuevo Amigo | | Registrado: oct 2006 Posts: 4
| | hola!! disculpa la demora, pero el periodo las pruebas y eso me tiene ocupado...emm mira no lo hagas como macros!
lo q tienes q hacer es cuando abras el excel apretar alt+f11 y se te abrira r el editor y ahi pegas too este chorizo...
dsp la haces correr
y en el excel funciona como botton de comando...
para eso inserta en la barra del excel una barra q se llama cuadro de controles
ahi esta la opcion boton de comando
al hacerle doble click abriras el editor del boton pegas el programa y dsp donde vez un boton play lo haces correr
y taran!
el programa funciona! | | Herramientas | | | | Desplegado | Mode Lineal |
Normas de Publicación
| no Puedes crear nuevos temas no Puedes responder a temas no Puedes adjuntar archivos no Puedes editar tus mensajes Código [IMG] está habilitado Código HTML está deshabilitado | | | La franja horaria es GMT. Ahora son las 21:19:23.
Powered by vBulletin® Version 3.6.8 Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design
|  |