Como disminuir tiempo de ejecución en formulario

Tengo una código que transfiere datos de 13 textbox a celdas en excel, previo a esto valida ciertas circunstancias pero todo esto tarda 1 minuto y medio y es demasiado tiempo, ¿cómo puedo disminuir esta rutina?

    If CheckBox1.Value = True And pedido1.Value <> "" Then
        ActiveCell.Offset(0, 4) = pedido1
        ActiveCell.Offset(0, 5) = CDbl(cant1)
        ActiveCell.Offset(0, 6) = Param4
    ElseIf CheckBox1.Value = True And pedido1.Value = Empty Then
        ActiveCell.Offset(0, 4) = pedido1
        ActiveCell.Offset(0, 5) = CDbl(cant1)
        ActiveCell.Offset(0, 6) = Param1
    ElseIf CheckBox1.Value = False And pedido1.Value = "" Then
        ActiveCell.Offset(0, 6) = Param3
    ElseIf CheckBox1.Value = False And pedido1.Value <> "" Then
        ActiveCell.Offset(0, 6) = Param2
    End If

1 Respuesta

Respuesta
1

.23.11.16

Buenos días, Douglas

Dependerá mucho de la estructura de planilla.

Por ejemplo si tuviese muchas fórmulas.

Probaría con estas tres instrucciones antes de que comience la transferencia de datos:

ModoCalc = Application.Calculation 'captura el modo de recalculo de tu planilla  
Application.Calculation = xlCalculationManual 'setea a recáculo manual  
Application.ScreenUpdating = False 'evita que se actualice la pantalla  

Y terminado ese proceso, agregaría estas reversiones:

Application. Calculate
Application.Calculation = ModoCalc 'devuelve el estado original de recálculo de tu planilla  
Application.ScreenUpdating = True 'permite que se actualice la pantalla  

Entiendo que deberías tener alguna ganancia con esas modificaciones.

Un abrazo

Fernando

.

Muchas Gracias Fernando, tienes razón y si disminuyo el tiempo adicional a ello valide las circunstancias antes de generar la rutina para que solo fuera transferencia de datos y de igual forma también bajo el tiempo, nuevamente gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas