Como bloquear un rango de celdas dependiendo del valor de otra y aplicarlo a para los valores que se registren en una columna?

Suponiendo que tengo en las celdas de la comuna "E" únicamente puede aceptar los valores de "SI" y "NO", en caso de que el valor registrado en la celda "E1" sea "SI" me permita escribir valores en las siguientes 5 celdas a la derecha ("F1, G1, H1, I1, J1"), en caso de que la respuesta sea "NO" que no me permita escribir en las siguientes 5 celdas a su derecha ("F1, G1, H1, I1, J1"), esta misma descripción, aplicarlo para las celdas de "E1" hasta las celda "E1000, por ejemplo, dependiendo del valor registrado en "E2", bloquear o desbloquear las celdas ("F2, G2, H2, I2, J2") y asi sucesivamente hasta la celda "E1000"

1 Respuesta

Respuesta
1

Para que las celdas se bloqueen, tienes que proteger la hoja.

Primero, selecciona todas tus celdas, en el Menú Inicio, en Formato, Formato de celdas, Proteger, desactiva la casilla Bloqueada y presiona Aceptar


Ahora, pon la siguiente macro en los eventos de tu hoja, cambia "abc" por el password que desees para proteger la hoja

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Range("E:E")) Is Nothing Then
        pwd = "abc"
        ActiveSheet.Unprotect pwd
        If UCase(Target) = "SI" Then
            Range("F" & Target.Row & ":J" & Target.Row).Locked = False
        Else
            Range("F" & Target.Row & ":J" & Target.Row).Locked = True
        End If
        ActiveSheet.Protect pwd, DrawingObjects:=False, Contents:=True, _
            Scenarios:=False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
            AllowFormattingRows:=True, AllowInsertingColumns:=True, _
            AllowInsertingRows:=True, AllowInsertingHyperlinks:=True, _
            AllowDeletingColumns:=True, AllowDeletingRows:=True, _
            AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True
    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, la macro funciona para toda la columna "E"

Saludos. Dante Amor

¡Gracias! 

Excelente. No cabe la menor duda de que con Excel se pueden hacer maravillas, únicamente hay que conocer todo su potencial, y en lo personal creo que tu lo conoces.

Saludos y gracias nuevamente

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas