Limpiar Macro Excel al borrar celda

Tengo la siguiente macro:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("D:D")) Is Nothing Then
Range("G" & Target.Row) = Date
Range("L" & Target.Row) = ObtenerNombreUsuario()
End If
End Sub

Esto me permite que al introducir un valor en cualquiera de las celdas de D, la macro me genera unos valores para su correspondiente celda de G y L.

Mi problema viene que al borrar uno de los valores de las celdas de D, quiero que me borre los valores de la macro. Lo he probado con:

ElseIf Application.Intersect(Target, Range("D:D")) Is Nothing Then
Range("G" & Target.Row) = " "
Range("L" & Target.Row) = " "

Y con bastantes mas cosas pero no hay manera.

1 respuesta

Respuesta
1

Si lo que intentas es que:

- Al colocar un dato en D se rellene G y L con otros datos

- Pero al borrar D se borre también G y L...

Entonces la rutina debiera quedar así:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("D:D")) Is Nothing Then
if target.value = "" then
Range("G" & Target.Row) = ""
Range("L" & Target.Row) = ""
else
Range("G" & Target.Row) = Date
Range("L" & Target.Row) = ObtenerNombreUsuario()
End If
end if
End Sub

Sdos y NO olvides finalizar la consulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas