Pregunta sobre Private Sub Worksheet_Change

28/07/2012 - 02:46 por titopose | Informe spam
¡ Hola !
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 en columna D .
(sin que de error)
Gracias
 

Leer las respuestas

#1 titopose
28/07/2012 - 17:31 | Informe spam
Pedro F. Pardo escribió el 28/07/2012 14:58 :
On Saturday, 28 July 2012 01:48:49 UTC+1, titopose wrote:
¡ Hola !

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 = "¡"

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 en columna D .

(sin que de error)

Gracias




La línea que dice...
If IsEmpty(Target) Then Exit Sub

cámbiala por...
If IsEmpty(Target) Then ActiveCell.Offset(0, -1).Value = "": Exit Sub

;-) Con eso debería bastar

Saludos
Pedro F. Pardo


Exactamente, con eso basta!
Gracias Pedro

Preguntas similares