Paso de argumentos en funciones

rguez

Board Regular
Joined
Jul 24, 2002
Messages
78
Hola otra vez

Sigo en lo de las funciones, les expongo el siguiente
caso

function misuma(rango as range) as double
misuma=rango+range("a1")
end function

Al utilizar esto en una planilla, deberìa sumar el valor
de la celda A1 a la celda referida.
Funciona bien, pero si luego cambias lo que hay en A1
la funcion no se actualiza.
He intentado con .evaluate y .calculate
pero no funciona

Lo ùnico que funciona es application.calculatefull
pero -como entenderàn- es muy intensiva pues
recalcula todos los libros abiertos en el instante.

Entiendo que lo razonable serìa construir una
funciòn que pase como argumento ambas celdas,
pero mi idea es tomar muchas celdas de distintos
lugares en un solo calculo y serìa muy engorroso hacer
pasar como referencia todas en la funciòn.

Gracias!
 

Excel Facts

What is the shortcut key for Format Selection?
Ctrl+1 (the number one) will open the Format dialog for whatever is selected.
Es que el problema es que para Excel, la función que contiene esa fórmula no es dependiente de A1, y por lo tanto no la marca como "sucia" (Que necesita recalcular...)... así que la opción que veo es marcarla como volátil, que tiene un gran impacto, ya que se recalcularía cada vez que cualquier celda cambie...

Esto se hace poniendo

Application.Volatile True

al principio de la función.

NO ES RECOMENDABLE si se va a utilizar la función en muchas celdas... definitivamente, lo mejor sería utilizar un parámetro para cada celda, pero pues si es muy engorroso...
 
Upvote 0

Forum statistics

Threads
1,223,937
Messages
6,175,511
Members
452,650
Latest member
Tinfish

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top