Como meter una fórmula cuando cambio valor a otra

Tengo celdas L3 y M3

Hay fórmula en la celda L3. Si doy un valor a la celda M3 el valor de L3 cambia.

Bien, si doy un valor a la celda L3 la fórmula se borra y quiero que la celda M3 en automático tenga la fórmula =L3*J3.

Si hay fórmula en M3 y coloco un valor quiero que la celda L3 tenga la siguiente fórmula =M3/J3.

Estoy tratando en VBA Sub Worksheet_Change(ByVal Target As Range).

Me pueden.

2 respuestas

Respuesta
1

Probá el siguiente código (la primer instrucción es porque asume que vas a cambiar de a una sola celda)

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub 'si cambia varias celdas simultaneamente no hace nada
If Target.Column = 12 Then  'estoy en la columna L?
  Application.EnableEvents = False    'para que no entre en ciclo
  Target.Offset(0, 1).Formula2R1C1 = "=RC[-1]*RC[-3]"
  Application.EnableEvents = True
ElseIf Target.Column = 13 Then  'estoy en la columna M?
  Application.EnableEvents = False    'para que no entre en ciclo
  Target.Offset(0, -1).Formula2R1C1 = "=RC[1]/RC[-2]"
  Application.EnableEvents = True
End If
End Sub
Respuesta
1

Supongo que quieres que funcione para cualquier fila de las columnas L y M.

Entonces prueba lo siguiente:

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.CountLarge > 1 Then Exit Sub
  If Target.Row < 3 Then Exit Sub
  If Not Intersect(Target, Range("L:M")) Is Nothing Then
    Application.EnableEvents = False
    If Target.Column = Columns("L").Column Then
      Range("M" & Target.Row).Formula = "=L" & Target.Row & "*J" & Target.Row
    Else
      Range("L" & Target.Row).Formula = "=M" & Target.Row & "/J" & Target.Row
    End If
    Application.EnableEvents = True
  End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas