Pregunta a Luis Mondelo sobre Private Sub Worksheet_Change

Tengo en Sheets “Mat” la siguiente Private Sub:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Application.Intersect(Target, Range("e4:e100")) Is Nothing Then
Cancel = True
If IsEmpty(Target) Then Exit Sub
If Target.Value = 0 Then Exit Sub
Call Macro_V
End If
End Sub
Macro_V :
Dim cantidad As Integer
ActiveCell.Offset(-1, -1).Select
cantidad = ActiveCell.Offset(0, 1).Value
ActiveCell.Formula = "=A1"
ActiveCell.FormulaLocal = ActiveCell.FormulaLocal & "*" & cantidad
ActiveCell.Offset(0, 1).Select
Al entrar un valor en la columna E coloca en la misma fila de la columna D el producto del valor entrado por A1, lo que permite que si cambio A1 (cosa frecuente) también cambien los valores de la columna D.
La pregunta es esta: como hacer para que si borro los valores entrados en la columna E se borren los resultados (resultados de la macro) en lacolumna D .
(sin que de error)
Gracias!

Respuesta
1

Te mando mi propuesta usando solo el evento worksheet_change sin necesidad de llamar a otra macro:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("e4:e100")) Is Nothing Then
Range("e4").Select
Do While ActiveCell.Row <> 100
ActiveCell.Offset(0, -1).Formula = "=a1* " & ActiveCell.Address
ActiveCell.Offset(1, 0).Select
Loop
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas