¿Cómo puedo crear una macro en excel que bloquee ciertas celdas combinadas al cumplir una condición con un botón?

En excel cuando hago una macro para bloquear ciertas celdas me funciona correctamente, pero cuando quiero bloquear celdas normales y combinadas me marca un error, ya le intente de varias formas y no me funciona.

2

2 respuestas

Respuesta
2

Cuando modificas una celda combinada, en Target tienes todas las celdas que componen la celda combinada, por lo tanto, tienes que bloquear el rango completo de las celdas.

Suponiendo que tienes las celdas combinadas C5 y D5; y también, quieres proteger la celda F5, entonces utiliza lo siguiente:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C5:D5", "F5")) Is Nothing Then
        ActiveSheet.Unprotect "abc"
        If Target.MergeCells = True Then
            rango = Target.MergeArea.Address
            Range(rango).Locked = True
        Else
            Target.Locked = True
        End If
        ActiveSheet.Protect "abc"
    End If
End Sub

Si modificas la celda C5, la macro obtiene el rango de celdas de la celda combinada y entonces bloquea el rango completo. 

Si modificas la celda F5, entonces solamente bloquea la celda F5.


'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda
Respuesta

¿Lo haces con una macro o con REVISAR> Permitir Rangos?

Ten en cuenta que las celdas combinadas tienes que seleccionar todo el rango

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas