Calculo de fórmulas

Hola, como estas, espero que bien... Bueno aquí preguntándote de nuevo y aquí voy a ver si me doy a entender...
Tengo una hoja donde yo dígito datos en aproximadamente 12 columnas, pero en toda la hoja hay muchas fórmulas y cuando te digo muchas fórmulas estoy hablando de muchísimas.. Y ese es el problema que cuando dígito un dato empieza a hacer los cálculos y se tarda tanto que asta me muestra poco a poco el porcentaje calculado, quisiera saber si hay algún método para desactivar el calculo de estas fórmulas asta que yo ahiga terminado de digitar todos los datos...
Cabe mencionar que esta hoja tiene una macro o un código sobre un Worksheet_Change para que los datos digitados en dos columnas los concatene y verifique que existan en una lista..
Bueno espero que me puedas ayudar.. La ida principal es que necesito desactivar el calculo de las fórmulas no la macro...
Gracias de antemano

1 respuesta

Respuesta
1
Efectivamente, cuando la cantidad de fórmulas es abundante, es práctico y altamente recomendable configurar la hoja para recalculo manual. Esto se logra a través de "Herramientas" | "Opciones" y en colocando la marca en la opción "Manual" que encontrarás bajo la solapa "Calcular".
De esta manera, cuando desees ver el resultado de las fórmulas, presionas F9 para que recalcule todo el libro.
---
Con relación a la macro, es conveniente también, al seleccionar un Evento Change, colocarle un control con respecto al rango donde se efectúen los cambios.
Vale decir: El evento change monitorea cualquier cambio que se produzca en toda la extensión de la hoja, y disparará la macro correspondiente. Este proceso, también insume tiempo, por lo tanto conviene limitar su ejecución al caso en que el cambio se produuzca dentro del rango donde pueda influir en los resultados.
Así la macro debería ser parecida a esto:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Indica cual es el Rango de control:
RangCtrl = "A2:B400"
Set EnRango = Application.Intersect(Range(RangCtrl), Target)
If Not EnRango Is Nothing Then
MsgBox "Modificó rango " & RangCtrl & Chr(10) & "en celda " & Target.Address(False, False) 'reemplaza esto por la macro que quieres que se ejecute
'< Tu macro de concatenación y búsqueda>
End If
Set EnRango = Nothing
End Sub
Al comienzo de la macro podrás definirle el rango que quieres que sea controlado.
Cuando alguna celda dentro de ese rango se modifique, se disparará la macro.
En el ejemplo, simplemente muestra un mensaje, pero podrás colocar allí el nombre de la macro a ejecutar o, directamente, sus comandos.
Esto logrará una reducción en los tiempos de proceso.
- Ingresa al sitio www.porloschicos.com y, si quieres,
presiona el botón de donación (es gratis).
Confío en que lo harás.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas