Sandra_83 писал(а):Последний вариант хороший, только что-то так тоже не работает.
А "c" - это что? Не нужно ли ее объявить как переменную?
Что конкретно значит "не работает"?
GSerg прав - обычно сам "отрываю ручки, ножки, и чего там ещё...за код без объявления переменных", а тут в попыхах облажался 
 
Если след. код помещенный в модуль ThisWorkbook не срабатывает при открытии файла:
- Код: Выделить всё
 Option Explicit
Const pass = ""
Private Sub Workbook_Open()
    Dim Sh As Worksheet, c As Range
    For Each Sh In Worksheets
        Sh.Protect Password:=pass, userinterfaceonly:=True
        Sh.Cells.Locked = True
        For Each c In Sh.UsedRange
            If c.Interior.ColorIndex = 36 Then c.Locked = False Else c.Locked = True
        Next c
    Next Sh
End Sub
то по-моему может быть только 3 реальных причины:
- не включены макросы
- код цвета полей, которые должны бы разблокироваться, не 36
- ты забыла заменить значение константы Pass  на реально использованный при защите листов пароль.