Bloquear o desbloquear celda al capturar datos en celda de fila anterior.

Tengo una hoja con el rango de captura A1:B5, las celdas del rango A2:B5 están inicialmente bloqueadas, de manera que no se puede capturar en ellas.

Lo que ocupo es una macro que al capturar algo en el rango de la primera fila A1:B1 se desbloquee las celdas de la fila siguiente A2:B2 dentro del rango inicial, siempre y cuando tanto en A1 como en B1 haya capturado algo.

* Las celdas de la fila 2 solo se activan si las celdas de la fila 1 contienen algo

* Las celdas de la fila 3 solo se desbloquean si las celdas de la fila 2 contiene algo y así sucesivamente con las demás celdas de las filas restantes.

1 Respuesta

Respuesta
1

Adjunto macro que se coloca en el Editor, en el objeto HOJA donde vayas a trabajarlo.

Si hubiese clave debes colocarla en las 2 instrucciones, por ej:

Activesheet.Unprotect "tu_clave"

Private Sub Worksheet_Change(ByVal Target As Range)
'x Elsamatilde
'se evalúan cambios solo en rango A1:B5
If Target.Column > 2 Or Target.Row > 5 Then Exit Sub
If Range("A" & Target.Row) <> "" And Range("B" & Target.Row) <> "" Then
    'como hay datos en las 2 celdas desbloquea la siguiente fila
    ActiveSheet.Unprotect
    Range("A" & Target.Row + 1 & ":B" & Target.Row + 1).Locked = False
    ActiveSheet.Protect
End If
End Sub

Gracias Elsa, 

he revisado la macro y funciona, solo tengo otra duda

Se puede preparar para que también funcione al revés, es decir que si ya tengo datos en todo el rango A1:B5, y luego ocupo borrar el contenido de A3:B5, se vuelva a bloquear la fila 4 y 5, ya que el ultimo dato capturado seria el de la fila 2 ??

saludos

Por encima del último End if agrega esto:

 Else
    If Range("A" & Target.Row) = "" And Range("B" & Target.Row) = "" Then
    'si no hay datos en las 2 celdas bloquea la siguiente fila
    ActiveSheet.Unprotect
    Range("A" & Target.Row + 1 & ":B" & Target.Row + 1).Locked = true
    ActiveSheet.Protect
End If
End sub

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas