Al intentar borrar un dato, se activa una macro que

Tengo una macro en la que me colaboraron... Y su función es cuando alguien intente borrar algún dato de una celda de cierto rango, muestra un MsgBox y pide una clave, de no entrar la clave no deja que se borre ese dato...
Me dieron el cod, pero no se como meterlo y que se autoejecute al abrir el libro o la hoja...
Este es el código:
Private Sub Worksheet_Open(ByVal Target As Range)
If Not Intersect(Target, Range("C3:C1000")) Is Nothing Then
x = InputBox("Ingrese la clave")
If x = "abcd" Then
MsgBox ("Clave no válida")
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
GoTo fin
End If
End If
fin:
End Sub
Espero me colabores, sy hay que corregir algo... Y como lo incrusto para que se autoejecute solo...

1 respuesta

Respuesta
1
Se puede ver inmedatamente ver un error en lo que tienes
pues donde dice "If x="abcd" then" significa que si digitas la
clave correcta, suponiendo que la clave correcta es abcd,
no te dejará hacer el borrado o la modificación,
en cambio si digitas cualquier cosa si la hará.
Además la macro se debe copiar en cada una de las hojas en donde
tu estas trabajando no en el libro al abrir,
porque si tienes más hojas dentro del libro,
necesitas especificarle en cual de todas la hojas harás la validación.
Entonces yo te envío una rutina que si funciona,
y que debes copiar en cada hoja que desees que se valida el borrado,
entrando a visual basic y copiandola en todos las carpetas
que dice Hoja# donde # es el numero de la hoja.
Esta pequeña macro esta restringida solo a la columna 3, es decir la "C,
si quieres otra solo le cambias el numero,
si quieres un rango puedes cambiarlo por esto
(Voy a suponer que el rango es desde la Columna B y Linea 3 hasta la columna F linea 8,
If(Target.column>=2 and Target.column=2 and Target.Row "abcd" Then
MsgBox ("Clave no válida")
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
GoTo fin
End If
End If
fin:
End Sub
No se porque pero esta cosa no muestra lo que realmente escribí,
lo que se ve como macro esta horrosa y no es lo que envíe.
Dame un mail y te lo envío por mail mejor.
Igual intentare pegar de nuevo la macro de todas maneras.
(Voy a suponer que el rango es desde la Columna B y Linea 2 hasta la columna F linea 8)
'Esto hace referencia a un rango
If(Target.column>=2 and Target.column=2 and Target.Row "abcd" Then
MsgBox ("Clave no válida")
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
GoTo FIN
End If
End If
FIN:
End Sub
La macro se ve mal y no es lo que quiero eviearte mandame el mail mejor.
Ok, Amigo mi mail es: (xxxxxx).
Seria bueno que me enviaras el ejemplo ejecutándose en la hoja para ver como incrustas el código y se ejecuta..
Te agradezco de veras, todavía soy novato en esto. Muchas gracias
Excelente Amigo, es un genio! Lo felicito!
Me sirvió... ¿Puedo más adelante hacerle más preguntitas? Espero que si...
Éxitos y gracias por su colaboracón. Guarde su dirección de correo por si acaso, alguna pregunta o para saludarlo...
Buen dia,   ATT; LuisFer

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas