Poder escribir en una celda al estar un check activo

Hola, buenos días:
Estoy haciendo una hoja del cálculo para calcular un presupuesto automáticamente, pero me ha surgido una duda que querría plantear y que me sería de gran utilidad:
¿Es posible no poder escribir en una celda o celda combinada si NO está un checkbox activo?, es decir que la celda se bloquease o no te dejase escribir en ella hasta que no se pulse en un checkbox.
Muchas gracias

1 respuesta

Respuesta
1
Bueno en realidad no conozco la forma de bloquear la celda directamente, la forma que conozco es la siguiente: se debe proteger la hoja y lógicamente queda bloqueada las celdas pero se puede configurar de tal forma que aunque este protegida la hoja se pueda seleccionar celdas y por medio del checkbox cuando se seleccione entonces desbloquee la celda que se encuentre activa, no se si sea la solución más adecuada al requerimiento que haces, pero no conozco una forma de bloquear una celda independientemente de las demás, si esta solución es la adecuada entonces espero su comentario y con mucho gusto desarrollo un ejemplo para que lo analice, estoy atento a su comentario, que tenga un feliz día!
Hola, esta solución que propones me podría funcionar perfectamente. ¿Podrías explicarme cómo se hace?
Muchas gracias por tu tiempo
Bueno lo que debe hacer es lo siguiente, primero si esta utilizando excel 2007 debe agregar la pestaña programador botón office/opciones excel/mas frecuentes/mostrar ficha programador en la cinta de opciones, hecho esto se dirige a la ficha programador/insertar/controles activex y selecciona la casilla verficacion o checkbox y lo crea en la hoja, luego hace doble click en ese objeto y le agrega el siguiente código:
Private Sub CheckBox1_Change()
Application.ScreenUpdating = False
c = ActiveCell.Address
If (CheckBox1.Value = True) Then
    ActiveSheet.Unprotect
    Selection.Locked = False
    ActiveSheet.Protect
    Range(c).Select
Else
    ActiveSheet.Unprotect
    Selection.Locked = True
    ActiveSheet.Protect
    Range(c).Select
End If
Application.ScreenUpdating = True
End Sub
Y listo ya puede probar la macro, eso si en la pestaña programador asegúrese de no dejar seleccionada la opción modo diseño, haga click aquí para que descargue un archivo de ejemplo para que vea su funcionamiento.
Espero mi ayuda le sea de utilidad, por favor no olvide puntuar y finalizar la pregunta, de lo contrario no finalice su consulta hasta obtener los resultados deseados, que tenga un feliz día!
Hola,
Esto es lo que estaba buscando, pero no puedo utilizarlo exactamente.
¿Existe alguna manera de hacer esto, pero que solo afecte a una celda en concreto?. Es decir, que solamente se proteja una celda y que al pulsar sobre el check esa misma celda quede desprotegida. De esta manera podría escribir en otras celdas no relacionadas, al ser un presupuesto lo que intento hacer, independientemente de si el check está activo o no.
Muchas gracias por tu tiempo
Bueno logre desarrollar lo que necesitabas, a continuación le dejo el código para que lo copie y lo remplace por el anterior, este código ya esta probado y funciona de maravilla, haciendo click aquí encontrar un archivo de muestra para que vea como funciona, a continuación el código:
Private Sub CheckBox1_Click()
    c = ActiveCell.Address
    If (CheckBox1.Value = True) Then
    Cells.Select
    Selection.Locked = False
    Range(c).Select
    Selection.Locked = True
    ActiveSheet.Protect 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
    Else
    ActiveSheet.Protect DrawingObjects:=True, Contents:=False, Scenarios:= _
        True, AllowFormattingCells:=False, AllowFormattingColumns:=False, _
        AllowFormattingRows:=False, AllowInsertingColumns:=False, AllowInsertingRows _
        :=False, AllowInsertingHyperlinks:=False, AllowDeletingColumns:=False, _
        AllowDeletingRows:=False, AllowSorting:=False, AllowFiltering:=False, _
        AllowUsingPivotTables:=False
    End If
end sub
Bueno espero que le sea útil mi ayuda, si es así NO OLVIDE PUNTUAR Y FINALIZAR LA PREGUNTA, de lo contrario no finalice la consulta hasta obtener los resultados deseados, que tenga un feliz día!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas