Welcome to the forum! Normally,
I set Protect with the UserInterfaceOnly option so all my code can change sheet objects. In ThisWorkbook object:
Private Sub Workbook_Open()
Dim ws As Worksheet
For Each ws In Worksheets
' UserInterfaceOnly:=True allows code to change data.
ws.Protect "ken", UserInterfaceOnly:=True, DrawingObjects:=True, _
Contents:=True, Scenarios:=True
Next ws
End Sub
Change ken to suit. Or, just do it for one sheet there or at the beginning of your macro. Then you don't have to worry about Unprotect/Protect each time.