Visual Basic para Aplicaciones - Ayuda con aplicación xls error 1004

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

Ayuda con aplicación xls error 1004

Publicado por rafael90 (1 intervención) el 26/12/2019 20:21:19
Buenas tardes

Requiero de su ayuda con respecto al siguiente archivo en el cual es una aplicación xls que permite realizar análisis pero no he logrado hacer que funcione como se indica ya que cada vez que le doy compute me arroja un error 1004

Captura-error-1004

Cuando le doy enviar me sale el siguiente error en el código fuente, pero he revisado y no veo ningún error.

Captura-error-codigo

El debería realizar los cálculos y arrojar un gráfico con los resultados, pero no logra realizar nada de esto por este error.

Agradecería mucho su 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
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Ayuda con aplicación xls error 1004

Publicado por Antoni Masana (498 intervenciones) el 30/12/2019 03:24:46
Me ha costado ver el error pero al final funciono.

1
2
3
4
5
6
c_fNum = Replace(Str(fNUm), ",", ".")
c_iSS = Replace(Str(iSS), ",", ".")
c_fDen = Replace(Str(fDen), ",", ".")
 
Range("D8").Select
ActiveCell.FormulaR1C1 = "=if(RC[-2]>0,(RC[-1] " & c_fNum & ")/(" & c_iSS & "+" & c_fDen & "),"""")"

No se exactamente porque no funciona, pero te cuento la conclusión a las que he llegado.

Esta es la formula original

1
Range("D8").FormulaR1C1 = "=if(rc[-2]> 0,(RC[-1] "" & fNUm & "")/("" & iSS & ""+"" & fDen & ""),"""")"

Si comparas veras que sobran muchas comillas dobles.

Segundo: No entendía este trozo de código y resulta que el valor de la variable es negativo.
Si alguna vez tiene que ser positivo no funcionara porque le faltara el signo.

1
(RC[-1] "" & fNUm & "")

Tercero: No se en tu caso como tienes el Excel configurado para los decimales, yo tengo la coma y creo que no me equivoco si digo que tu también.
El caso es que lee el numero con la coma decimal y la macro necesita que el número tengo un punto como decimal para formar la formula.
Independiente mente de como se represente en pantalla la programación utiliza el punto como indicador de decimales.
La solución ha siro cambiar las comas por puntos.

Quiero probarlo en otro ordenador cambiando la configuración de puntos y comas y ya te contare.

Son los misterios de la informática.

Saludos.
\\//_
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.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Ayuda con aplicación xls error 1004

Publicado por Antoni Masana (498 intervenciones) el 30/12/2019 16:11:11
Realizada la prueba.

Si el Excel utiliza el punto como separador de decimales la macro funciona correctamente tal cual la tienes.

Otra cuestión es cómo hacer que funcione bien si el valor de fNum es positivo:

1
2
3
fNUm = Range("AI10").Value
fDen = Range("AI11").Value
Range("D8").FormulaR1C1 = "=if(rc[-2]> 0,(RC[-1] + (" & fNUm & "))/(" & iSS & "+" & fDen & "),"""")"

El resultado es esto.

Para valor Negativo:

1
=SI(B20> 0;(C20 + (-0.3))/(18+0.4);"")

Para valor Positivo:

1
=SI(B20> 0;(C20 + ( 0.3))/(18+0.4);"")


Saludos.
\\//_
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