[RESUELTO] función para calcular la fecha de próximo trienio
[RESUELTO] función para calcular la fecha de próximo trienio
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
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
Re: funcion para calcular la fecha del proximo trienio
Hola,
Prueba esto más sencillo. Puedes hacerlo si lo prefieres directamente en el sub en vez de la función.
Saludos
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
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)
Re: funcion para calcular la fecha del proximo trienio
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
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
Re: funcion para calcular la fecha del proximo trienio
No sé si he entendido bien, a ver:
La formula "=trienio" está en Ctrl+F3 <> trienio
Saludos, Federico.
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!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Re: funcion para calcular la fecha del proximo trienio
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.
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.
Re: funcion para calcular la fecha del proximo trienio
Indica por favor uno o dos o tres..... ejemplos concretos con fechas para ver esos casos.El único problema que le encuentro es con los trienios que se cumplen en el mes que estamos ahora. Se pasa directamente al siguiente.
Originalmente dijimos :
Saludos.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.
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!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Re: funcion para calcular la fecha del proximo trienio
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
Muchas gracias
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
Muchas gracias
- Adjuntos
-
- Trienios 2.0.ods
- (22.41 KiB) Descargado 232 veces
Re: funcion para calcular la fecha del proximo trienio
¡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:
Saludos, Federico.
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
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=2668Que 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.
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!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!