VBA. FÓRMULA no recalcula si no paso por la celda

Hola.
Tengo tres celdas con fórmulas de tipo MODA('Hoja1'! $A:$G). Como los cálculos que requiere saturan un poco la máquina, ya que estoy trabajando con rangos enormes, tengo una macro que borra los contenidos de estas tres celdas para poder introducir datos en Hoja1 sin que se actualice a cada momento la moda. Si no, es imposible trabajar.
Lógicamente, también tengo otra macro que restaura las fórmulas MODA en cada celda. El problema es que cuando la ejecuto, se copian bien las fórmulas pero no se calculan de forma automática, sino que me aparece en cada una de las tres celdas el error #¿NOMBRE?
No hay mayor problema. Sencillamente tengo que pasar por cada celda, hacer "Intro" con el teclado y la fórmula se calcula automáticamente (tardando lo que necesite en cada caso), pero me gustaría poder saltarme este paso y añadirlo directamente al final de la ejecución de la macro.
Copio el código de las dos macros:
Sub STD_off()
Sheets("STD").Activate
For POS = 31 To 33
Cells(POS, 2).ClearContents
Next POS
End Sub
Sub STD_on()
Sheets("STD").Activate
Cells(31, 2).Formula = "=MODA('LOG-EX'!$W:$W)"
Cells(32, 2).Formula = "=MODA('LOG-EX'!$U:$V)"
Cells(33, 2).Formula = "=MODA('LOG-EX'!$M:$T)"
Range("B31").Select
Range("B31").Calculate
End Sub
Como veis, lo he intentado con "Calculate", pero no funciona. Si podéis echarme una mano, os lo agradeceré (bueno, y si no podéis, también os agradezco que me hayáis leído).

1 Respuesta

Respuesta
1
Para insertar fórmulas usando "Formula", debes usar el idioma "universal" para el VBA, es decir, el ingles:
Cells(31, 2).Formula = "=Mode('LOG-EX'!$W:$W)"
Con eso, tu macro insertara la fórmula convieritiendo la función al idioma de tu configuraicon regional. Si el tuyo es Castellano, lo dejara como Moda, si es inlges, lo dejara en Mode, si es alemán... etc etc
Si deseas hacerlo directamente en tu idioma, debes hacerlo con "formulaLocal":
Cells(31, 2).FormulaLocal = "=Moda('LOG-EX'!$W:$W)"
Claro que eso hará que solo funcione en Castellano... o en el idioma que coloques la función de la fórmula
Abraham
Pues... ¡Muchísimas gracias! Sí que había visto que al grabar macros las instrucciones quedaban en inglés y sin embargo aceptaba bien las fórmulas en castellano, pero no tenía ni idea de cómo funcionaba este aspecto de Excel.
Te doy 5 estrellas por la claridad de la respuesta. Creo que puede ser útil también para otros.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas