Expertos se puede bloquear una celda luego de escribir en ella

Expertos buenas tardes, es posible bloquear una celda después de escoger de una lista desplegable alguna alternativa.-

1 respuesta

Respuesta
2

Para que las celdas puedan protegerse, la hoja deberá estar protegida. Sigue las instrucciones.

Realiza los siguientes pasos para desbloquear las celdas.

1. Selecciona todas las celdas o las celdas que desees que van entrar en el proceso.

2. Selecciona el menú inicio

3. Selecciona "Formato" de la ficha "Celdas"

4. Selecciona "Formato de Celdas"

5. Selecciona la ceja "Proteger"

6. Desmarca la casilla "Bloqueada"

Ahora para que automáticamente se bloqueé la o las celdas cada vez que escribas algo en la celda, por ejemplo: "E5" pon la siguiente macro en Worksheet.

Sigue las Instrucciones para poner la macro en worksheet

1. Abre tu libro de excel

2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11

3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)

4. Del lado derecho copia la macro               

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.DAM
If Not Intersect(Target, Range("E5")) Is Nothing Then
    For Each c In Target
        ActiveSheet.Unprotect "abc"
        Target.Locked = True
        ActiveSheet.Protect "abc"
    Next
End If
End Sub

Si quieres que el bloqueo abarque toda una columna, cambia en la macro esta línea:

If Not Intersect(Target, Range("E5")) Is Nothing Then

Por esta

If Not Intersect(Target, Range("E:E")) Is Nothing Then

Si quieres un rango de celdas, por ejemplo pon esta

If Not Intersect(Target, Range("E5:E20")) Is Nothing Then

Listo, cuando modifiques la celda E5 la macro se activa, protege la hoja y bloquea la celda E5.

Saludos. Dante Amor

No olvides valorar la respuesta.

Un pequeño detalle en la macro, utiliza esta:

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.DAM
If Not Intersect(Target, Range("E5")) Is Nothing Then
    For Each c In Target
        ActiveSheet.Unprotect "abc"
        c.Locked = True
        ActiveSheet.Protect "abc"
    Next
End If
End Sub

Nota: la hoja quedará protegida con el password "abc" cambia en la macro esta palabra por la que desees.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas