Inicio > Microsoft Excel > fejoal > Calculo de formulas

Calculo de formulas

Experto:
Usuario:
Fecha: 24/06/2003
Valoración: (5,00 sobre 5) Categoría: Microsoft Excel
22/06/2003
squalljead, usuario preguntando en Microsoft Excel
Usuario
Hola, como estas, espero que bien... bueno aqui preguntandote de nuevo y aqui voy a ver si me doy a enteder...

Tengo una hoja donde yo digito datos en aproximadamente 12 columnas, pero en toda la hoja hay muchas formulas y cuando te digo muchas formulas estoy hablando de muchisimas.. y ese es el problema que cuando digito un dato empieza a hacer los calculos y se tarda tanto que asta me muestra poco a poco el porcentaje calculado, quisiera saber si hay algun metodo para desactivar el calculo de estas formulas asta que yo ahiga terminado de digitar todos los datos...

Cabe mensionar que esta hoja tiene una macro o un codigo 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 formulas no la macro...

Gracias de antemano
23/06/2003
squalljead, experto respondiendo en Microsoft Excel
Experto
Buenas...

Efectivamente, cuando la cantidad de fórmulas es abundante, es práctico y altamente recomendable configurar la hoja para recálculo 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 efectuen 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.

Espero que esto ayude a resolver tu problema.
Si así fuera, agradeceré un comentario y que la finalices.
(Recuerda que mantener cierto número de respuestas pendientes impide que otros usuarios puedan consultarme)

Un abrazo!
Fernando

"Me lo explicaron y lo olvidé,
lo leí y lo entendí,
lo hice y lo aprendí".

°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
A cambio de mi tiempo, sólo te pido dos cosas:
- Finaliza (con puntaje y comentario) esta pregunta
- 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. Por ambas cosas, muchas gracias.

°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
24/06/2003
squalljead, usuario preguntando en Microsoft Excel
Usuario
dos palabras: "EXCELENTE" y "GRACIAS"
Enlaces patrocinados