Ejecutar Macro al suprimir valores

tengo la siguiente macro en una hoja de excel

Private Sub Worksheet_Change(ByVal Target As Range)
Dim CeldaActiva As Range
If Target.Count > 1 Then Exit Sub
'esta rutina controla contenidos en columnas específicas
'primero omitimos que se ejecute cuando se trata de cambios en las
'2 primeras filas, generalmente de títulos:
If Target.Row < 2 Then Exit Sub
If Target.Column = 1 Then
If Target.Value <> 0 Then Call prueba
End If
If Target.Column = 2 Then
If Target.Value <> 0 Then Call prueba
End If
End Sub

que ejecuta la macro prueba insertada en un modulo, que realiza la resta del valor de la celda B3 menos A3, y asi sucesivamente B4-A4, B5-A5 ...siempre y cuando estas celdas contengan un valor, en caso que una de ambas celdas, no tenga un valor no se realiza la diferencia y la celda C, que es donde muestra el resultado es igual a "", la macro seria la siguiente:

Sub prueba()
Range("B3").Select 'se comienza a ejecutar teniendo el valor de B3
While ActiveCell <> ""
If UCase(ActiveCell) <> "" Then
If Range("B" & ActiveCell.Row) <> "" Then Range("C" & ActiveCell.Row) = Range("B" & ActiveCell.Row) - Range("A" & ActiveCell.Row)
If Range("B" & ActiveCell.Row) = "" Then Range("C" & ActiveCell.Row) = ""
End If
ActiveCell.Offset(1, 0).Select
Wend
End Sub

El problema es que cuando suprimo un rango de datos o un valor de una celda. El resultado, en C ya sea un rango C3,C4,C5 o una sola celda C5, no se borra, la cuestión es que si yo borro los valores de digamos B4 Y A4, automáticamente el valor de C4 se borre. EJEMPLO

10(B6)-5(A6)=5(C6)

elimino estos datos, C6 se actualize a ""

""(B6)-""(A6)=""(C6)

1 respuesta

Respuesta
1

El evento Change se ejecuta por cada columna por vez, es decir que si seleccionas A y B no se ejecutará.

Tampoco se ejecuta porque le estás diciendo que si UCase(ActiveCell) <> ""... quiere decir que si la celda está vacía no se ejecutará.

Por ahora, tal como está, deberás quitarle las líneas del Ucase y 'borrar' contenido en A, luego en B.

Gracias podría explicarme mas entendido, no soy muy bueno en esto, gracias a usted tengo la primer parte del código en hoja, y a provechando por que si muevo los datos digamos a partir de J3 el código en hoja no se ejecuta al cambiar los valores de j3

Disculpa, qué tiene que ver ahora esto con la consulta original... no te entendí.

Por favor explica lo que REALMENTE necesitas obtener ...

Si hablábamos de: que realiza la resta del valor de la celda B3 menos A3, y asi sucesivamente B4-A4, B5-A5 ... siempre y cuando estas celdas contengan un valor,...

Eso ya está resuelto.

¿Y ahora qué necesitas agregar?

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas