Proteger celdas que tienen algún contenido

Quisiera que me apoyes con una macro que pueda bloquear un rango de celdas, por ejemplo A1:F50, que contengan algún texto o numero escrito.

1 Respuesta

Respuesta

H o l a:

Primero ejecuta una vez la siguiente macro:

Sub BloquearCeldas()
'Por.Dante Amor
    pwd = "abc"
    ActiveSheet.Unprotect pwd
    ActiveSheet.Cells.Locked = False
    Application.EnableEvents = False
    For Each c In ActiveSheet.Range("A1:F50")
        If c.Value <> "" Then
            c.Locked = True
        End If
    Next
    Application.EnableEvents = True
    ActiveSheet.Protect pwd, DrawingObjects:=False, _
        Contents:=True, Scenarios:=False, _
        AllowFormattingCells:=True, AllowFormattingColumns:=True, _
        AllowFormattingRows:=True, AllowInsertingHyperlinks:=True, _
        AllowSorting:=True, AllowFiltering:=True, _
        AllowUsingPivotTables:=True
    MsgBox "Terminado"
End Sub

Sigue las Instrucciones para ejecutar la macro

  1. Abre tu archivo de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Para ejecutarla presiona F5

Ahora, pon la siguiente macro en los eventos de tu hoja:

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    pwd = "abc"
    If Not Intersect(Target, Range("A1:F50")) Is Nothing Then
        For Each c In Target
            If c.Value <> "" Then
                ActiveSheet.Unprotect pwd
                c.Locked = True
                ActiveSheet.Protect pwd, DrawingObjects:=False, _
                    Contents:=True, Scenarios:=False, _
                    AllowFormattingCells:=True, AllowFormattingColumns:=True, _
                    AllowFormattingRows:=True, AllowInsertingHyperlinks:=True, _
                    AllowSorting:=True, AllowFiltering:=True, _
                    AllowUsingPivotTables:=True
            End If
        Next
    End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de 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.

Listo, cada vez que escribas algo en las celdas del rango A1:F50, la celda se bloquará y la hoja quedará protegida.

Cambia el password "abc" por el que desees.


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas