No bloquea toda la línea, lo que hace es bloquear todo un rango de datos, es decir, si en alguna celda de la columna "Z" tienes escrito algo, por ejemplo, si en la celda "Z55" tienes una palabra o un blanco (en lugar de vacío), entonces la macro te bloquea desde A1 hasta Z55. Pero las celdas de la siguiente columna no estarán bloqueadas.
Si quieres que se bloqueen solamente las celdas que contienen datos, entonces utiliza esta macro:
Sub bloca()
'Por.Dante Amor
Set h1 = Sheets("Hoja1")
h1.Unprotect "abc"
h1.Cells.Locked = False
h1.Cells.SpecialCells(xlCellTypeConstants, 23).Locked = True
ActiveSheet.Protect "abc", _
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
End Sub
Con esta macro si en "B5" tienes un dato, la celda "B5" se bloqueará, pero si la celda "C5" no tiene datos, entonces no se bloqueará aunque esté en la misma fila, y si la celda "B3" no tiene datos, entonces tampoco se bloqueará aunque esté en la misma columna.
Saludos. Dante Amor
Recuerda valorar la respuesta
Dante Amor Amigo, he hecho tal cual como se indica el procedimiento pero no me funciona el macro. Después de guardar puedo seguir escribiendo sobre las celdas editadas. - Juan Giraldo
Crea una nueva pregunta para revisar tu archivo. - Dante Amor
Buenas, gracias por dedicar un poco de tu tiempo a resolver estas inquietudes que te presentan, me gustaría saber como hacer un ciclo para varias hojas con este mismo código. - Willian Barrios
No es posible poner el código en esta sección, pero lo intentamos, cambia esta línea: Set h1 = Sheets("Hoja1") por esta: For each h1 in sheets y antes de la línea End Sub pon esta línea Next Eso va a funcionar para todas las hojas, si quieres algo más específico crea una nueva pregunta, haces referencia a esta pregunta y en el desarrollo de la pregunta escribe Para Dante Amor - Dante Amor