Restar 2 columnas dependiendo si es mayor o menor

Quisiera que me podrían ayudar necesito comparar dos columnas si a es menor a b que me reste y ponga el resultado en c y así sucesivamente hasta que no aya datos

Respuesta
1

Pero.. ¿y si A es mayor que B?

1 respuesta más de otro experto

Respuesta
3

Si a es menor a b que me reste

Cuál sería la resta b menos a ó a menos b.

Supongo que es b menos a.

Prueba la siguiente fórmula en C2 y copia hacia abajo hasta el final de los datos.

=SI(A2<B2,B2-A2,"")

Buenas tardes muchas gracias por su tiempo lo que trato de hacer que lo agá automáticamente que son como 600 datos con vba por el momento tengo esto pero creo ando mal no me funciona

Private Sub Worksheet_Change(ByVal Target As Range)

Set a = Sheets("minmax")
Fila = 3
Do While Not IsEmpty(a.Cells(Fila, 2))

If a.Cells(Fila, 3) < a.Cells(Fila, 5) Then
a.Cells(Fila, 9) = a.Cells(Fila, 5) - a.Cells(Fila, 3)

End If

Fila = Fila + 1

Loop
End Sub

Que lo Hag automáticamente

Private Sub Worksheet_Change(ByVal Target As Range)

Te refieres a capturar un dato y en automático realice el cálculo.

El evento Change es para identificar que alguna celda en la hoja fue modificada, entonces se activa el evento y ejecuta en automático el código.

¿Eso necesitas?

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

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. 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

  1. Abre tu archivo de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Para ejecutarla presiona F5

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas