Como bloquear ciertas celdas en excel

Tengo un archivo de excel y quiero que cuando el usuario elija anulación se bloquee ciertas celdas pertenientes a refacturación y cuando elija refacturación se bloquien las celdas de anulación.

Ejemplo.:

En A2 tengo una lista desplegable para que elijas "ANULACION" O "REFACTURACION"

Cuando eliga "Anulacion" esten activadas las celdas C2, H2, N2, O2R2, S2, U2, W2 y bloqueadas las celdas D2, E2, F2, K2, P2, T2, V2.

Y cuando Elija "refacturación" esten activas las celdas D2, E2, F2, K2, P2, T2, V2 y bloqueadas las celdas

C2,H2,N2,O2R2,S2,U2,W2.

Intente el siguiente código, pero no obtuve éxito. Lo encontré en una página y modifique a lo que según necesitaba

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim Isect As Range

    Set Isect = Application.Intersect(Target, Range("A3:A2000"))

    If Not Isect Is Nothing Then

        If Isect = "ANULACION" Then

            ActiveSheet.Unprotect "123"

            Isect.Offset(0, 2).Locked = False

            Isect.Offset(0, 7).Locked = False

            Isect.Offset(0, 13).Locked = False

            Isect.Offset(0, 14).Locked = False

            Isect.Offset(0, 17).Locked = False

            Isect.Offset(0, 18).Locked = False

            Isect.Offset(0, 20).Locked = False

            Isect.Offset(0, 22).Locked = False

            Isect.Offset(0, 3).Locked = True

            Isect.Offset(0, 4).Locked = True

            Isect.Offset(0, 5).Locked = True

            Isect.Offset(0, 10).Locked = True

            Isect.Offset(0, 15).Locked = True

            Isect.Offset(0, 19).Locked = True

            Isect.Offset(0, 21).Locked = True

            Call ProtejeHoja

        ElseIf Isect = "REFACTURACION" Then

        ActiveSheet.Unprotect "123"

            Isect.Offset(0, 2).Locked = True elegir

            Isect.Offset(0, 7).Locked = True

            Isect.Offset(0, 13).Locked = True

            Isect.Offset(0, 14).Locked = True

            Isect.Offset(0, 17).Locked = True

            Isect.Offset(0, 18).Locked = True

            Isect.Offset(0, 20).Locked = True

            Isect.Offset(0, 22).Locked = True

            Isect.Offset(0, 3).Locked = False

            Isect.Offset(0, 4).Locked = False

            Isect.Offset(0, 5).Locked = False

            Isect.Offset(0, 10).Locked = False

            Isect.Offset(0, 15).Locked = False

            Isect.Offset(0, 19).Locked = False

            Isect.Offset(0, 21).Locked = False

            Call ProtejeHoja

        Else

            MsgBox "Solo puede indicar ANULACION O REFACTURACION"

        End If

    End If

End Sub

y este es el codigo de la funcion ProtegeHoja

Sub ProtejeHoja()
    ActiveSheet.Protect Password:="123", DrawingObjects:=True, Contents:=True,      AllowFormattingCells:=True, _
    AllowFormattingColumns:=True, AllowFormattingRows:=True
End Sub

1 respuesta

Respuesta
1

Tu código en apariencia se ve correcto... pero al volcarlo al Editor se observa una línea de error (en rojo):

Quita el texto 'elegir' o colocale una comilla delante para transformarlo en comentario.

Sdos y no olvides valorar las respuestas desde el botón que encontrarás al pie de esta entrada.

Sigue sin hacer efecto la fórmula amiga.

Me pudieras ayudar por favor.

Te adjunto Imagen: Las celdas que tiene las letras negras son las que deben de estar habilitadas para cuando escriban ANULACIÓN, las blancas cuando escriban REFACTURACIÓN y las de color Naranja para ambos.

Gracias

La macro está bien (quitándole ese texto que te marqué en respuesta anterior).

No comentaste en esa oportunidad nada de una tercera opción ni se observan col de naranja en tu imagen.

Entonces, como la macro menciona el rango ("A3:A2000"), la hoja previamente tendrá todas las celdas bloquedas menos las de la col A, a partir de fila 3.

Es decir, que no se ejecuta en fila 2 (C2, H2, ...) sino recién en fila 3. Salvo que ajustes la instrucción del Set Isect

Y revisa también que tengas la macro colocada en el objeto HOJA donde tengas tu tabla.

Sdos y comenta si aún necesitas alguna aclaración.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas