[RESUELTO] función para calcular la fecha de próximo trienio

Discute sobre la aplicación de hojas de cálculo
Responder
userpepe
Mensajes: 15
Registrado: Jue Jul 19, 2018 6:44 pm

[RESUELTO] función para calcular la fecha de próximo trienio

Mensaje por userpepe »

Hola a todos;

Soy nuevo en esto de vba y macros y tengo algún problema con el que quizá podais ayudarme.
Estoy intentando calcular la fecha del proximo trienio de un trabajador, teniendo como dato la fecha de inicio.
He intentado crear una funcion, pero no encuentro el error... :(

Os dejo el codigo por si podeis echarme una mano. Muchas gracias

Function trienios(F_alta) as Date
Dim nDia As Integer ' Día de la fecha de inicio.
Dim nMes As Integer ' Mes de la fecha de inicio.
Dim nAno As Integer ' Año de la fecha de inicio.
Dim F_alta as Date

nAno = Year(F_alta)
nMes = Month(F_alta)
nDia = Day(F_alta)

Do while nAno < Year(Now)

nAno = nAno + 3

Exit Do
Loop

If nDia > 1 And nMes = 12 Then
nMes = 1
nAno = nAno + 1
ElseIf nMes < 12 Then
nMes = nMes + 1
EndIf


trienios = cDate(DateSerial(nAno, nMes, 1))

End Function
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: funcion para calcular la fecha del proximo trienio

Mensaje por RMG »

Hola,

Prueba esto más sencillo. Puedes hacerlo si lo prefieres directamente en el sub en vez de la función.

Código: Seleccionar todo

Sub macrotrienio()'macro llamada a la funcion
print TRIENIO 'valor de la funcion
End Sub

Function trienio()'(F_inicio As Date)
Dim F_inicio As Date
F_inicio = "20/10/2018"
TRIENIO = DateAdd ("yyyy", +3, F_inicio)
End Function
Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
userpepe
Mensajes: 15
Registrado: Jue Jul 19, 2018 6:44 pm

Re: funcion para calcular la fecha del proximo trienio

Mensaje por userpepe »

Hola RMG

Muchas gracias por contestar.
De la forma que me dices solo sumas tres años a una fecha no?

yonecesito saber cual va ser la fecha del proximo trienio, que siga sumando tres años a esa fecha hasta que el resultado sea superior a la fecha actual.
Un saludo
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: funcion para calcular la fecha del proximo trienio

Mensaje por fornelasa »

No sé si he entendido bien, a ver:
La formula "=trienio" está en Ctrl+F3 <> trienio
Saludos, Federico.
Adjuntos
Trienios.ods
Trienios
(13.97 KiB) Descargado 249 veces
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
userpepe
Mensajes: 15
Registrado: Jue Jul 19, 2018 6:44 pm

Re: funcion para calcular la fecha del proximo trienio

Mensaje por userpepe »

Hola fornelasa;

Lo has entendido perfectamente! Muchas gracias por responder.
El único problema que le encuentro es con los trienios que se cumplen en el mes que estamos ahora. Se pasa directamente al siguiente.
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: funcion para calcular la fecha del proximo trienio

Mensaje por fornelasa »

El único problema que le encuentro es con los trienios que se cumplen en el mes que estamos ahora. Se pasa directamente al siguiente.
Indica por favor uno o dos o tres..... ejemplos concretos con fechas para ver esos casos.
Originalmente dijimos :
yo necesito saber cual va ser la fecha del proximo trienio, que siga sumando tres años a esa fecha hasta que el resultado sea superior a la fecha actual.
Saludos.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
userpepe
Mensajes: 15
Registrado: Jue Jul 19, 2018 6:44 pm

Re: funcion para calcular la fecha del proximo trienio

Mensaje por userpepe »

Hola Fornelasa;

Tu respuesta me sirvio perfectamente; La idea es:
1. Que una persona que cumple un trienio en un día que no sea el día 1 de un mes se pasa al dia 1 del mes siguiente.
2. Que yo pueda en el mes actual ver todos los que cumplen un trienio este mes.

A partir de tu formula he intentado cumplir estas dos normas que te comento.
Te subo archivo y la ultima fecha añadida sería el que cumple trienio este mes.

Seguramente no es la forma más elegante pero me funciona :P

Muchas gracias
Adjuntos
Trienios 2.0.ods
(22.41 KiB) Descargado 232 veces
Avatar de Usuario
fornelasa
Mensajes: 3268
Registrado: Jue Feb 17, 2011 8:30 pm
Ubicación: Estado de México, México.

Re: funcion para calcular la fecha del proximo trienio

Mensaje por fornelasa »

¡Perfecto! que bueno que ha quedado resuelto.

Solo cómo comentario, considero que pediste una cosa y terminaste haciendo otra distinta, claramente son dos cosas diferentes:
userpepe escribió: yo necesito saber cual va ser la fecha del próximo trienio, que siga sumando tres años a esa fecha hasta que el resultado sea superior a la fecha actual
Que una persona que cumple un trienio en un día que no sea el día 1 de un mes se pasa al dia 1 del mes siguiente.
Recuerda, cuando los temas han sido resueltos debemos marcarlos como tal, aquí nos dicen como hacerlo: https://forum.openoffice.org/es/forum/v ... f=3&t=2668

Saludos, Federico.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Responder