Visual Basic para Aplicaciones - error 80020005

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 169
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

error 80020005

Publicado por Albert (160 intervenciones) el 03/03/2020 14:10:30
buenos días foreros, tengo un problema con un formulario, lo lleno con los datos de una hoja y funciona bien hasta que encuentra una celda que tenga un error, he mirado de eliminar el error pero no encuentro la manera, os adjunto el excel completo para que lo podáis ver, en la pagina "inversiones" hay un botón que abre el formulario, si en el combobox ponéis una fecha superior a mayo 2030 os dará el error, he dejado unas celdas coloreadas en la pagina "pendiente" para que se vea el error, a esta pagina le he puesto una macro que se llama "MayorQue" que si las celdas están en 0 o en error cambia el formato de letra a blanco para que no se vea, he probado algunas soluciones que he encontrado buscando en distintas paginas pero no he sabido hacerlo bien, lo que me ha parecido que seria la solución es "Application.WorksheetFunction" ,
La aplicación no la he terminado aún, lo digo por si a alguien le da por mirar las formulas hay una que esta mal (en la columna J de inversiones) he de preguntarle a mi gestor para que me explique como hacerlo bien,

Gracias de antemano por vuestra ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 169
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

error 80020005

Publicado por Albert (160 intervenciones) el 03/03/2020 14:32:59
Por cierto, disculpad no me he acordado de deciros que en la macro imprimir he puesto para que me sume los datos en la pagina pero no se por que no funciona , lo uso en otras y si me funciona
También he probado de poner clearcontens en el siguiente código que es el que deja los errores en blanco pero no me lo acepta, lo he sacado grabando una macro y hacerlo a mano con "formato condicional" "nueva regla".

1
2
3
4
5
6
7
8
9
10
'deja en blanco las casillas con errores
 Range("D9:CX408").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=ESERROR(D9)"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Font
        .ThemeColor = xlThemeColorDark1
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = True
    Application.ErrorCheckingOptions.BackgroundChecking = False
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.105
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

error 80020005

Publicado por Antoni Masana (376 intervenciones) el 03/03/2020 22:07:29
Estoy intentando entender las formulas de las columnas G y H

La formula de la columna G fila 135:

1
=SI(Inversiones!$F$13>$C135;"";SI(H134="";"";(Inversiones!$J$13/12)))

La primera condición seria, cambiando los valores:

1
=SI( 01/06/2020 > 01/06/2030 ; "" ; SI(H134="";"";(Inversiones!$J$13/12)))

Esto da como resultado FALSO. Entonces se valida la segunda condición y da ERROR

¿Porque? Bien analicemos la función de H134

1
=SI(G134="";"0";SI(H133+G134>=Inversiones!$C$13;" ";SI(H133="";"";H133+G134)))

La Primera condición es FALSO y en la segunda falla la suma H133 + G134 es evidente que que si G34 es un string no se puede sumar y da un error.

Tengo una muy ligera idea de lo que quieres hacer pero no acabo de ver la intención de las fórmulas y creo que la fórmulas están mal planteadas.

Hay una función que va muy bien para esto:

Columna G antes:
1
=SI(Inversiones!$F$13>$C130;"";SI(H129="";"";(Inversiones!$J$13/12)))

Columna G Respues:
1
=SI.ERROR(SI(Inversiones!$F$13>$C130;"";SI(H129="";"";(Inversiones!$J$13/12)));"")


Columna H antes:
1
=SI(G130="";"";SI(H129+G130>=Inversiones!$C$13;" ";SI(H129="";"";H129+G130)))

Columna H despues:
1
=SI.ERROR(SI(G130="";"";SI(H129+G130>=Inversiones!$C$13;" ";SI(H129="";"";H129+G130)));"")


Columna I antes:
1
=SI(G130="";"";Inversiones!C$13-Pendiente!H130)

Columna I despues:
1
=SI.ERROR(SI(G130="";"";Inversiones!C$13-Pendiente!H130);"")


Y oye, mano de santo.

Saludos
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 169
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

error 80020005

Publicado por Albert (160 intervenciones) el 04/03/2020 11:12:35
Gracias por tu ayuda, se trata de hacer una aplicación para controlar las amortizaciones de un local y todas las obras que se ha hacen y muebles ,informática etc, según las normas de hacienda, cada trimestre hay que poner los gastos de amortización cada trimestre al hacer los impuestos,(no te dejan poner el gasto entero de golpe cuando lo compras si no que amortizarlo según sus criterios) por eso mi intención era poner la amortización de cada mes, como ya has visto lo he preparado para que se active cuando se compra o se empieza a usar, (columna F pag Inversiones) por eso en la columna G pongo el gasto mes a mes y en la H el acumulado así cuando se acaba el trimestre vas al for pones la fecha del ultimo mes del trimestre, (serviría tener solo marzo,junio, septiembre y diciembre,de cada año) y te da el acumulado, tengo que preguntarle al gestor pero creo que tendré que modificara para que sea solo el gasto del trimestre, pero en el manual de la renta de hacienda yo lo entendí como lo tengo hecho ahora.
Repito GRACIAS por tu ayuda, no se mucho de VBA y me atasco con tonterías...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar