Bloquear una columna y una celda en excel

Para Dante Amor

Hola tengo un archivo excel en la cual la columna A, B, C etc y las filas 1, 2 3 etc.

Le coloco una (x) para saber si me entregaron la documentación requerida.

Que es lo que necesito que al colocar la (x) y pasar ya sea de columna o fila se me bloque y me cambie de color es celda (Ej. A1 x), y de ser necesario poder desbloquearla con alguna contraseña.

2 Respuestas

Respuesta
2

H o l a:

Envíame tu archivo y me explicas en cuál hoja y cuál rango vas a poner las "X"

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “jorgeruben” y el título de esta pregunta.

¡Gracias! ok te he mandado el mail

H o l a:

Primero, vamos a bloquear todas las celdas que ya tienen una "X". Ejecuta la siguiente macro sobre la hoja que tiene las "X":

Sub BloquearX()
'Por.Dante Amor
    ActiveSheet.Unprotect "abc"
    ActiveSheet.Cells.Locked = False
    Application.EnableEvents = False
    For Each c In ActiveSheet.UsedRange
        If c.Value = "X" Or c.Value = "x" Then
            c.Value = "X"
            c.Locked = True
        End If
    Next
    Application.EnableEvents = True
    ActiveSheet.Protect "abc"
    MsgBox "Terminado"
End Sub

Cambia "abc" por el password que desees.


Después pon la siguiente macro en los eventos de la misma hoja:

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Range("D:U")) Is Nothing Then
        If Target.Row > 5 And Target.Column <> Columns("I").Column Then
            For Each c In Target
                Select Case c.Value
                    Case "X"
                        ActiveSheet.Unprotect "abc"
                        c.Locked = True
                        ActiveSheet.Protect "abc", DrawingObjects:=False, _
                        Contents:=True, Scenarios:=False, _
                        AllowFormattingCells:=True, AllowFormattingColumns:=True, _
                        AllowFormattingRows:=True, AllowInsertingHyperlinks:=True, _
                        AllowSorting:=True, AllowFiltering:=True, _
                        AllowUsingPivotTables:=True
                    Case ""
                    Case Else
                        MsgBox "Sólo es posible poner la 'X'", vbExclamation
                        c.Value = ""
                        c.Select
                End Select
            Next
        End If
    End If
End Sub

Cambia el password "abc" por el que desees.

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, ahora solamente podrán capturar "X" en las columnas de la "D:U", excepto la "I". Si ponen otra cosas les envía un mensaje. La hoja estará protegida.


Respuesta
1

Me has recomendado esta consulta pero no pude responderla por estar dirigida a otro experto y he dejado que el te la responda.

Las consultas no debieran estar 'dirigidas' (salvo casos puntuales) para que puedan responderte los que quizas ya tienen el ejemplo justo o tengan el tiempo disponible y así evitas demoras.

Sdos.

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas