Macro que bloquee celdas después editadas al cerrar archivo

No logro concretar una macro, espero me pueda ayudar. Requiero una macro que me permita tener un grupo de celdas siempre bloqueado, uno que proteja las celdas que hayan sido editadas al cerrar el archivo y que mantenga siempre desprotegidas un grupo de celdas que necesito se actualicen constantemente.

Pd. Señor Dante amor ya envié el archivo pero no se si lo recibió.

Respuesta
1

Te contesté el correo, no puedo descargar tu archivo, puedes enviarme una muestra de datos para ponerte la macro

¡Gracias! 

Ya te envié una muestra muchas gracias por tu atención oportuna.

Quedo pendiente de cualquier aclaración

Te anexo la macro que deberás poner en los eventos de worksheet

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Range("C:P,Y:AD")) Is Nothing Then
        pwd = "abc"
        ActiveSheet.Unprotect pwd
        For Each c In Target
            c.Locked = True
        Next
        ActiveSheet.Protect pwd, False, True, False, True, True, _
            True, True, True, True, True, True, True, True, True
        ActiveSheet.EnableSelection = xlNoRestrictions
    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

Mil gracias! Solo un detalle, puede ser que se ejecute al cerrar el archivo? Para que no se bloqueen inmediatamente y Si tienen algún error al capturar les sea posible corregirlo oportuNamente, de Antemano gracias de nuevo.

Eso sería otra macro. Te anexo la macro, pero podrías crear una pregunta nueva, correspondiente a bloquear celdas cuando se cierra el archivo. De igual manera en alguna parte del texto de la pregunta escribe que va dirigida a Dante Amor.

Cambia en la macro "Hoja1" por la hoja que quieras proteger.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Por.Dante Amor
    Set h = Sheets("Hoja1")
    pwd = "abc"
    h.Unprotect pwd
    h.Cells.SpecialCells(xlCellTypeConstants, 23).Locked = True
    h.Cells.SpecialCells(xlCellTypeFormulas, 23).Locked = True
    h.Protect pwd, False, True, False, True, True, _
        True, True, True, True, True, True, True, True, True
    h.EnableSelection = xlNoRestrictions
    ActiveWorkbook.Save
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas