Calculo Entre 2 fechas

Solo consultas sobre macros y código VBA Excel.
Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Responder
Silverio
Miembro Frecuente
Miembro Frecuente
Mensajes: 27
Registrado: 02 Jun 2019 19:18

Calculo Entre 2 fechas

Mensaje por Silverio » 13 Jul 2019 22:27

Buen día a todos y mi agradecimiento al foro.
Estoy intentando realizar un macro que me permita colocar segun la fecha de ingreso de un empleado el tiempo de servicio hasta una fecha tope del 31/07/2019. Tomando en cuenta que si su fecha de ingreso hasta la fecha tope es mayor o igual a un año en adelante le pagare en base a 12 meses, si la persona tiene menos de un año le pagare en base a sus meses completos. Cuando me refiero a meses completos es que si la persona tiene fecha de ingreso por ejemplo: 01/08/2018 hasta 31/07/2019 daria 11 meses, pero si su fecha de ingreso es 02/08/2018, le pagare en base a 10 meses y asi sucesivamente; haciendolo manualmente para validar los resultados utlice la función =SIFECHA(Z2;AA2;"ym") donde Z2 para este ejemplo es 01/08/2018 y AA2 es 31/07/2019 esto me dio como resultado que la persona tendra para esta fecha 11 meses. lo que no sucede con la macro, los resultados son distintos :cry:

Quise hacer lo mismo a nivel de macro pero me da un resultado distinto adjunto la macro para ver si me pueden asesorar, gracias de antemano y disculpen de verdad la manera como hago las rutinas he aprendido poco a poco gracias a uds.. tardo en responder el internet en este pais ya no funciona como antes :oops:
No tienes los permisos requeridos para ver los archivos adjuntos a este mensaje.



Avatar de Usuario
Héctor Miguel
Miembro Frecuente
Miembro Frecuente
Mensajes: 5811
Registrado: 26 Mar 2005 18:31

Re: Calculo Entre 2 fechas

Mensaje por Héctor Miguel » 15 Jul 2019 01:58

para el caso de tu adjunto de muestra, no hay necesidad de "(RE)inventar la rueda" si ya existe "la funcion"

prueba (entre una infinidad mas de alternativas) con una macro +/- como esta:

Código: Seleccionar todo

Sub meses_x_sifecha()
  Dim uno As String, dos As String: Application.ScreenUpdating = False
  With Range([b2], [b65536].End(xlUp)).Offset(, 1): .Clear
    uno = .Cells(1).Offset(, -2).Address(0, 0)
    dos = .Cells(1).Offset(, -1).Address(0, 0)
    .Formula = "=datedif(" & uno & "," & dos & ",""m"")": .Value = .Value
  End With
End Sub



Silverio
Miembro Frecuente
Miembro Frecuente
Mensajes: 27
Registrado: 02 Jun 2019 19:18

Re: Calculo Entre 2 fechas

Mensaje por Silverio » 15 Jul 2019 23:47

Señor Hector, muchisimas gracias, voy estudiar bien lo que ha hecho, uds de verdad son inspiración...voy a descifrar todo lo que hizo y por este mismo canal, le indicare que es para que ud mismo vea que he aprendido.
Gracias de verdad!!!


Héctor Miguel escribió:
15 Jul 2019 01:58
para el caso de tu adjunto de muestra, no hay necesidad de "(RE)inventar la rueda" si ya existe "la funcion"

prueba (entre una infinidad mas de alternativas) con una macro +/- como esta:

Código: Seleccionar todo

Sub meses_x_sifecha()
  Dim uno As String, dos As String: Application.ScreenUpdating = False
  With Range([b2], [b65536].End(xlUp)).Offset(, 1): .Clear
    uno = .Cells(1).Offset(, -2).Address(0, 0)
    dos = .Cells(1).Offset(, -1).Address(0, 0)
    .Formula = "=datedif(" & uno & "," & dos & ",""m"")": .Value = .Value
  End With
End Sub



Responder