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 на реально использованный при защите листов пароль.