Saltar al contenido

Fallo de macro para notificar que borraste datos.


Recommended Posts

publicado

Hola, tengo un archivo de excel y le puse una macro para que a la hora de borrar alguna celda me notifique y realice la accion o cancelarla, pero tiene un pequeño problema, por ejemplo si yo estoy ubicado en la celda A20 y borro la informacion que tengo en esa celda, a la hora de cambirme a la B20 sale la notificacion de que acabo de borrar la celda A20 que si estoy seguro y si pongo que no, la informacion qu tenia en la A20 me la coloca en la B20..

En lo que quisiera que me ayudaran es en que si borro la celda x y me cambio de celda a la hora de que me saga la notificacion y si pongo que no quiero borrar, qe la informacion se quede en la celda x, no en mi celda actual.

Epero y puedan ayudarme! gracias!

esta es la macro que coloque para la advertencia de borrar.

Dim Valor

'__________________________________________

Private Sub Worksheet_Change(ByVal Target As Range)

If Target = Empty Then

If MsgBox(" Acabas de borrar la celda " & Target.Address(False, False) & Chr(10) & _

"¿ Estás seguro ?", vbinformatiom + vbQuestion + vbYesNo, "Borrar datos") = vbNo Then

ActiveCell = Valor

End If

End If

End Sub

'_________________________________________________

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Valor = Target

End Sub

publicado

Prueba así:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target = Empty Then
If MsgBox(" Acabas de borrar la celda " & Target.Address(False, False) & Chr(10) & _
"¿ Estás seguro ?", vbinformatiom + vbQuestion + vbYesNo, "Borrar datos") = vbNo Then
Application.Undo
End If
End If
End Sub[/CODE]

Salu2

publicado

La misma macro que @[uSER=143023]Riddle[/uSER], pero por si borras mas de una celda ala vez.

Private Sub Worksheet_Change(ByVal Rango As Range)
Dim Cadena As Variant, Borrar As Boolean
Application.EnableEvents = False
For Each Target In Rango
If Target = Empty Then
Borrar = True
Cadena = Cadena & Target.Address(False, False) & Chr(10)
End If
Next
If Borrar = True Then
If MsgBox("Acabas de borrar la/s celda/s: " & Chr(10) & Chr(10) & Cadena & Chr(10) & _
"¿ Estás seguro ?", vbinformatiom + vbQuestion + vbYesNo, "Borrar datos") = vbNo Then
Application.Undo
End If
End If
Application.EnableEvents = True
End Sub
[/CODE]

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.