Saltar al contenido

Ayuda con error al salir de la hoja en Visual, ¿ Alguien me lo puede mirar ?


Recommended Posts

publicado

Hola a todos

Poco a poco estoy progresando con mi hoja de cálculo y le intento ir añaciendo más y más funciones.

El caso es que no sabiendo como ni porqué, cometí un error en la programación de Visual, y al presionar el botón "Salir" en el primer formulario, me sale un error.

¿ Alguien me lo puede solucionar ?

Tengo otra consulta.

Tengo una fórmula para calcular los años y los meses entre dos fechas.

En la primera fórmula me calcula los trienios.

=SI(F6>0;ENTERO((AÑO(F7-F6)-1900)/3 &","&MES(F7-F6)&"");"")
[/CODE]

Como podréis ver, extraigo el entero de la cantidad calculada, que es la que me interesa. Pero para realizar éste cálculo, pongo como fecha inicial F6 (cuando entré a trabajar en la empresa) y como fecha final fija (31/12/96), fecha donde se finalizaros los trienios en mi convenio.

Esto lo calculo y me sale bien, el problema viene ahora.

Desde ese fecha indicada, 01/01/97, tenemos quinquenios, para calcularlos, tengo la siguiente fórmula:

[CODE]=SI(F7>0;(SIFECHA(F7;A3;"m")/60);"")
[/CODE]

Me salen 3,28.

Errores:

-Me da 3 quinquenios, ésto correcto

-Me da 0,28 de exceso, que es un porcentaje sobre los 5 años del quinquenio, pero yo preferiría que me diera los meses de exceso, o sea, 0,25 (dos años y un mes)

-Me gustaría sumarle los 0,7 meses de exceso de la primera fórmula, pero no se como hayarlo, yo pondría:

[CODE]=SI(F7>0;(SIFECHA(F7;A3;"m")/60))+(RESIDUO((AÑO(F7-F6)-1900)/3 &","&MES(F7-F6)&""));"")
[/CODE]

pero me da error.

Estas fórmulas están en las celdas C7 y D7

Como veréis tengo bastantes problemas más en la hoja, ahoram ismo me estoy pegando con los UserForm2, UserForm10 y UserForm11, pero creo que será tanto lo que hay que hacer y tan grandes los problemas, que sobre ésto no pretendo ayuda, jeje, espero ir aprendiendo algo e ir solucionando éstos problemas poco a poco

Un saludo y muchas gracias

[color=blue]- - - - - Mensaje combinado - - - - -[/color]

Perdón, estaba en el trabajo y no me dejó subir el archivo, ahora ya está subido, espero me podáis echar una mano

un saludo

Copia de Cálculo Liquidación III.rar

publicado

amigo xorrascar, cuando te salga el mensaje del error, le das al boton depurar y luego puedes ir ejecutando el codigo paso a paso con F8, así puedes ver donde falla el código y corregirlo, en tu caso el error esta en el userform7, donde tienes este codigo:

Sheets("Hoja1").Range("A1,A6,B6,C6,D6,F6,I6,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,D16,D16,D18,D19,D20,D21,D22,D23,D24,D25,D26,D27,E16,E17,E18,E19,E20,E21,E22,E23,E24,E25,E26,E27,H13,H16,H17,H18,H19,H20,H21,H22,H23,H24,H25,H26,H27,H31,G36,G37,H36,H37").ClearContents[/CODE]

cambia [b]ClearContents [/b]por [b].value =""[/b], el error es porque intentas limpiar el contenido de celdas combinadas, en excel 2007 y 2010 pasa mucho ese problema, creo que en el 2003 no sucedia, colocando el [b].value ="" [/b]lo solucionas

otra cosa, estas usando [b]Application.Quit[/b] para salir, no es lo ideal, si tienes otros archivos de excel abiertos los vas a cerrar, lo ideal es cerrar solamente tu archivo, puedes usar [b]ActiveWorkbook.Close True[/b] (con eso cierras y salvas el archivo, o colocas [b]false [/b]si no quieres salvar), igualmente cuando abres el archivo estas ocultando excel con esto: [b]Application.Visible = False[/b], debes asegurarte de colocarlo visible nuevamente ([b]Application.Visible = True[/b]) por si hay otros archivos y no queden "ocultos", suerte con tu archivo

[color=blue]- - - - - Mensaje combinado - - - - -[/color]

Lo de las formulas no entendi mucho, deberías colocar las fechas que estas manejando y cual es el resultado que deseas, para así evaluarlo mejor, suerte

publicado
suerte

Muchísimas gracias por tu respuesta y tus consejos, gracias a ellos he depurado el error y ha mejorado mucho la hoja.

Lo de las formulas no entendi mucho, deberías colocar las fechas que estas manejando y cual es el resultado que deseas, para así evaluarlo mejor, suerteSobre las fórmulas, a ver si me explico bien.

En lugar de explicar lo que pretendo, te diré lo que hay, jejeje

En mi caso, entré en una empresa a trabajar el 20/05/1990. Nos pagaban trienios por aquel entonces.

Con fecha 31/12/1996, se acabaron los trienios. Desde el 01/01/1997, comenzamos a devengar quinquenios.

Lo que pretendo, conseguir que me calcule los trienios desde el 20/05/1990 hasta el 31/12/1996.

Aquí el resultado, debería de dar, 2 trienios, 7 meses y 10 días. Y que me multiplique, esos dos trienios, sin tener en cuenta los meses y los días, por la cantidad a la que nos pagaban cada trienio.

Una vez tengamos ese resultado, calcular los quinquenios, desde el 01/01/1997, hasta la actualidad, pero en el mismo cálculo, que sume los 7 meses y los diez días excedentes del cálculo anterior de los trienios. O sea, nos debería de dar como resultado, tres trienios, dos años, un mes y diez días, que sumados a los 7 meses y diez días del excedente de los trienios, nos debería de dar como resultado final, tres quinquenios, dos años, ocho meses y veinte días. Y de esa cantidad, multipicar, solo los tres quinqueios, por la cantidad a la que nos pagan cada uno.

Dentro de dos años, cuatro meses y diez dias, con la misma fórmula, nos debería de dar como resultado, cuatro quinquenios.

publicado

Hola:

Te dejo un par de macros ligadas a la apertura del libro y al cambio de la celda F6.

Los cálculos son discrepantes respecto a los tuyos, pero humildemente, creo que los míos son los correctos.

Siguiendo con tu ejemplo, está claro que cumpliste quinquenio en la empresa el pasado 19/05/2011, y desde esa fecha hasta hoy han trancurrido 2 años, 1 mes y 13 días, si le sumamos + 2 trienios (6 años) + 3 quinquenios (15 años) hacen una Antigüedad total = 23 años, 1 mes y 13 días.

Tu próximo quinquenio cumple el 19/05/2016 y hasta entonces faltan 2 años 10 meses y 18 días.

Saludos

Cálculo Liquidación MA I.rar

publicado

Los cálculos son discrepantes respecto a los tuyos, pero humildemente, creo que los míos son los correctos.

Pues no puedo decir lo contrario, jejeje, y "humildemente" te doy las gracias, lo de humilde, va con segundas, en plan bien por supuesto, con segundas porque de humilde no ha tenido nada, me has solucionado uno de los grandes quebraderos de cabeza que tenía, y creo además, que por muchos conocimientos que tengas, tiempo y trabajo seguro que te ha llevado, por eso reitero mis agradecimientos.

No entiendo nada de todo lo que has puesto, demasiado nivel para mis conocimientos, así que me limitaré a copiar y pegar.

Y ya puestos, ¿ Podría pedir más ayuda ?

He puesto una formulario, donde se van poniendo las horas que vamos haciendo cada mes. y al lado, una CheckBox por cada mes.

Mi idea, es que si hacemos el mes completo, marcamos la checkbox correspondiente, y a la hoja de excel se le envía la jornada que tenemos que hacer en ese mes, en nuestro caso, 162 horas.

Si por el contrario, el cese en el puesto de trabajo o cambio de empresa, se produce en un día cualquiera dentro del mes, dejaremos el checkbox sin marcar, y una vez hacemos click en el comman_button, nos saldrá un nuevo formulario, donde nos pedirá que pongamos el día de finalización del servicio o cambio de empresa y la hora.

En base a esos datos, una fórmula dividirá la jornada mensual ordinaria en el número de días del mes y lo multiplicará por los días que que se pusieron en el formulario anterior, restándole uno y sumándole el porcentaje que equivale a las horas indicadas.

imaginaros que el servicio finaliza a las 19 horas del día 25 de un mes de 30 días:

jornada mensual 162 horas : 30 días = 5,40 horas día x 24 (día de finalización 25 - 1) = 129,6 + 4,27 (si a 24 equivalen 5,40, a 19 equivaldrán "x") = 133,87 horas que deberíamos de hacer en ese mes.

Los problemas, que son doce meses y doce condicionantes que no logro ni entender ni hacerme con ello, estoy totalmente perdido.

he puesto algo así como:

if checkbox true then

dejar las celdas correspondientes vacías .value = ""

else if false then

abrir el formulario donde se me pide el día del cese la hora

end

pero como la misma función se cumple en varios meses, me salen un montón de formularios uno debajo del otro.

Vamos, que mis conocimientos son tan limitados que estoy totalmente perdido.

Un saludo y muchísimas gracias por vuestras respuestas y el interés mostrado por ayudarme

publicado

Sube de nuevo el archivo con los cambios que le hayas hecho y el ejemplo que has expuesto.

Y recuerda que cualquier petición fuera de la consulta será ignorada.

Te ruego que leas detenidamente mi firma.

publicado

amigo xorrascar, primero que nada te recomiendo que apliques a todas tus formulas la funcion SI.ERROR, por ejemplo si en una celda tienes

=$I$12/B15

la cambias así

=SI.ERROR($I$12/B15;0)

con esto evitas el poco de #VALOR que tienes en tu hoja y eso te está dando problemas cuando se cargan los formularios

otra cosa, cuando abres el archivo de una vez llamas a la funcio TrieniosQuinquenios, y eso está malo, ya que estas haciendo un calculo sin haber todavía pedido la información al usuario, yo lo quite y cargaron todos los formularios sin problema

revisa a ver si sigues teniendo problemas despues de eso, suerte

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.