Macro para proteger una celda de excel inmediatamente después de entrar (copiar) algún contenido en ella

Me gustaría me ayuden a completar esta macro

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E13:J13")) Is Nothing Then
ActiveSheet.Unprotect
Target.Locked = True
ActiveSheet.Protect
End If
End Sub

Lo que hace es bloquear una celda de excel inmediatamente después de entrar (copiar) algún contenido en ella
Es necesario antes de ejecutar la macro hacer lo siguiente:

1- Desprotege la hoja

2-Seleccionar el rango E13:J13 ----- botón derecho ---- formato de celdas----- proteger---- y deja las dos casillas sin pinchar.
3- Proteger la hoja
4- Ejecuta la macro

Deseo entonces me permita cifrar la edición de las celdas mediante una contraseña, ---- si lo hago mediante el menú REVISAR - PROTEGER HOJA me genera un error y me pide la contraseña por mi elegida en el momento en que quiero editar por primera ves una celda del rango deseado (sin proteger) ------------------------- si lo dejo sin contraseña me funciona a la perfección, pero es muy fácil para un usuario ir al menú REVISAR y DESPROTEGER LA HOJA

Deseo entonces, repito ... Colocar una contraseña que se me requiera solo en el momento en que quiero editar la celda, ... Imagino es alguna linea que va dentro del código de la macro

Respuesta
3

A ver, creo que es esto lo que vos necesitas:

ActiveSheet.Unprotect password:="123"

Haces todo lo que vos quieras y luego

ActiveSheet.Protect password:="123"

Hola, .. gracias

Me funciona lo que has dicho, .... asì

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:F20")) Is Nothing Then
ActiveSheet.Unprotect Password:="123"
Target.Locked = True
ActiveSheet.Protect Password:="123"
End If
End Sub

quisiera agregar algo mas sucede que en la hoja donde copio esta macro ya existe un contenido previo en las celdas, ... deseo entonces la macro recorra la hoja y proteja las que ya tienen contenido previo (es decir me pida contraseña para modificarlas) ..... es que como esta ahora me deja modificar esas celdas que tienen contenido sin pedir contraseña, .. solo lo hace luego que las cambio y quiero volver a editarlas por segunda ves, ---------- la macro actúa como si la hoja empezara en blanco

A ver si con este puntapié tu la puedes armar.

Sub Macro1()

'Seleccionada todas las celdas y las bloquea
Cells.Select
Selection.Locked = True
Selection.FormulaHidden = False

'Seleccionada todas las celdas y las bloquea
Cells.SpecialCells(xlCellTypeBlanks).Select
Selection.Locked = False

'Pone contraseña a todas las celdas bloqueadas
ActiveSheet.Protect Password:="123" DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells

End Sub

Hola, .... mira lo que pasa al colocar la macro que me envías, ... hay un problema con esta linea del código: se pone en rojo como ves en la imagen

ActiveSheet.Protect Password:="123" DrawingObjects:=True, Contents:=True, Scenarios:=True

el problema al parecer es a partir de que se nombra esta parte....

DrawingObjects:=True, Contents:=True,Scenarios:=True

agradezco infinitamente que me ayudes, no entiendo cual pueda ser el error ---- sale un cuadro que dice error de compilación se esperaba: fin de la instrucción

este es el enlace a la imagen

Ya lo vamos a sacar no te preocupes.

Proba asi:

Sub Macro1()
ActiveSheet.Unprotect
'Seleccionada todas las celdas y las bloquea
Cells.Select
Selection.Locked = True
Selection.FormulaHidden = False
'Seleccionada todas las celdas y las bloquea
Cells.SpecialCells(xlCellTypeBlanks).Select
Selection.Locked = False
'Pone contraseña a todas las celdas bloqueadas
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells
End Sub

Le agregue una linea antes de comenzar la macro que desprotege. Ademas le quite la contraseña. Veamos si asi funciona y luego le ponemos contraseña. El enlace que te paso tiene un ejemplo.

https://www.dropbox.com/s/wqttxvudj2xosy5/Ejemplo2.xlsm

1 respuesta más de otro experto

Respuesta

Disculpa la molestia estoy realizando un libro en Excel y necesito de tu ayuda, mi idea es igual a la de Steven Acosta, también necesito bloquear las celdas después de capturar "x" datos ( letras o numeros), y desbloquearlas solo con la contraseña de Administrador (contraseña asignada por mi), espero tu respuesta y muchas gracias por tu atención, hasta pronto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas