Saltar al contenido

mejorar código en evento change de hoja de calculo de excel


Ir a la solución Solucionado por howling,

Recommended Posts

publicado

buenas noches, quisiera saber si puedo mejorar mi macros que se encuentra en el evento change de la hoja de calculo de Excel, son códigos de cálculos básicos, además si me pudieran ayudar a reducir el código o darme algún tip para reducirlo yo mismo estaría muy agradecido. 
de ante mano muchas gracias

    Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False
    Application.Calculation = xlManual
    Application.EnableEvents = False
    
        If Not Intersect(Target, Range("$L$5:$Y$9")) Is Nothing Then
            Sub todo()
    
    Range("E22") = WorksheetFunction.Sum(Range("E4:E21"))
    Range("E23") = WorksheetFunction.Sum(Range("E4:E19"))
    Range("E24") = WorksheetFunction.Sum(Range("E23") - WorksheetFunction.Sum(Range("I4:I7")))
    Range("i22") = WorksheetFunction.Sum(Range("I4:I21"))
    Range("I4") = Range("E23") * 0.1
    Range("I6") = Range("E23") * 0.0127
    Range("I5") = Range("EN10") * Range("EN11")
    Range("I7") = Range("E23") * 0.006
    Range("I25") = Range("E22") - Range("I22")
    Range("I12") = Range("E24") * 0.03
    Range("C7") = WorksheetFunction.Sum(Range("EQ8") - (Range("EQ9"))) + Range("EN13") + Range("EN14") + Range("EN15") + Range("EN16")
    'Range("E7") = WorksheetFunction.Sum(Range("C7") * ((Range("E4") * 0.0077777)))
    Range("C9") = Range("EQ9") + Range("EN17") + Range("EN18") + Range("EN19")
    'Range("E9") = WorksheetFunction.Sum(((((Range("E4") / Range("C4")) * 7) / 45) * 1.3) * 1.5) * Range("C9")
    'Range("E8") = WorksheetFunction.Sum(((((Range("E4") / Range("C4")) * 7) / 45) * 0.3)) * (Range("C8"))
    Range("E9") = WorksheetFunction.Sum(((((Range("E4") / Range("C4")) * 7) / 44) * 1.3) * 1.5) * Range("C9")
    Range("E8") = WorksheetFunction.Sum(((((Range("E4") / Range("C4")) * 7) / 44) * 0.3)) * (Range("C8"))
    Range("E7") = WorksheetFunction.Sum((((Range("E4") / Range("C4")) * 7) / 44) * 1.5) * Range("C7")
    
    End Sub
    
        End If
        
        Application.Calculation = xlAutomatic
    Application.ScreenUpdating = True
    Application.EnableEvents = True
    End Sub

publicado

Si  no me he liado con los paréntesis:

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
Application.Calculation = xlManual
Application.EnableEvents = False

If Not Intersect(Target, Range("$L$5:$Y$9")) Is Nothing Then
   Range("E22") = WorksheetFunction.Sum(Range("E4:E21"))
   Range("E23") = WorksheetFunction.Sum(Range("E4:E19"))
   Range("E24") = Range("E23") - WorksheetFunction.Sum(Range("I4:I7"))
   Range("I22") = WorksheetFunction.Sum(Range("I4:I21"))
   Range("I4") = Range("E23") * 0.1
   Range("I5") = Range("EN10") * Range("EN11")
   Range("I6") = Range("E23") * 0.0127
   Range("I7") = Range("E23") * 0.006
   Range("I25") = Range("E22") - Range("I22")
   Range("I12") = Range("E24") * 0.03
   Range("C7") = Range("EQ8") - Range("EQ9") + Range("EN13") + Range("EN14") + Range("EN15") + Range("EN16")
   Range("C9") = Range("EQ9") + Range("EN17") + Range("EN18") + Range("EN19")
   Range("E7") = Range("E4") / Range("C4") * 7 / 44 * 1.5 * Range("C7")
   Range("E8") = Range("E4") / Range("C4") * 7 / 44 * 0.3 * Range("C8")
   Range("E9") = Range("E4") / Range("C4") * 7 / 44 * 1.3 * 1.5 * Range("C9")
End If

Application.Calculation = xlAutomatic
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub

 

Conéctate para comentar

Podrás dejar un comentario después de conectarte



Conéctate ahora
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.