Si lo que quieres es capturar un dato en la columna C o E y que en automático haga la resta, entonces utiliza lo siguiente:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, c As Range
'
Set rng = Intersect(Target, Range("C2:C" & Rows.Count & ",E2:E" & Rows.Count))
If Not rng Is Nothing Then
Application.EnableEvents = False
For Each c In rng
If Range("C" & c.Row) < Range("E" & c.Row) Then
Range("I" & c.Row).Value = Range("E" & c.Row).Value - Range("C" & c.Row).Value
End If
Next
Application.EnableEvents = True
End If
'
End Sub
Sigue las Instrucciones para poner la macro en los eventos de worksheet
- Abre tu libro de excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
- En el panel del lado derecho copia la macro
Pero si quieres el cálculo desde la celda E2 y hasta la última fila con datos, entonces, pon el siguiente código en un módulo:
Sub Resta()
Dim sh As Worksheet
Set sh = Sheets("minmax")
With sh.Range("I2:I" & sh.Range("C" & Rows.Count).End(3).Row)
.Formula = "=IF(C2<E2,E2-C2,"""")"
.Value = .Value
End With
End Sub
Sigue las Instrucciones para ejecutar la macro
- Abre tu archivo de excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- En el menú elige Insertar / Módulo
- En el panel del lado derecho copia la macro
- Para ejecutarla presiona F5