powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel проблема с защитой листа
5 сообщений из 5, страница 1 из 1
Excel проблема с защитой листа
    #34285245
eda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
eda
Гость
Есть защищенный лист, на нем незащищаемые ячейки, в которые редактируются макросом. Значения в эти ячейки вносятся без проблем, а вот при попытке изменить их цвет фона - ошибка. Пробывал указанный на форуме способ:
...
Рейтинг: 0 / 0
Excel проблема с защитой листа
    #34285283
eda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
eda
Гость
Есть защищенный лист, на нем незащищаемые ячейки, в которые редактируются макросом. Значения в эти ячейки вносятся без проблем, а вот при попытке изменить их цвет фона - ошибка. Пробывал указанный на форуме способ:
Код: plaintext
1.
2.
WorkSheet(i).Unprotect
...
WorkSheet(i).Protect
Все работает, только на время обновления обновляемы лист становится активным (макрос запускается по событию на другом листе), что при частом обновлении раздражает.
На основании вышеизложенного вопрос: как изменить цвет фона незащищенных ячеек на защищенном листе без "побочных" эффектов?
...
Рейтинг: 0 / 0
Excel проблема с защитой листа
    #34285584
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверняка в коде используется "select" и "activate"
избавься от них и все будет Ok
например
Код: plaintext
    Sheets("Лист1").Select \'делает активным лист "Лист1"\n    Range("G9").Select \'выделяет ячейку "G9"\n    Selection.Interior.ColorIndex =  6  \'изменяет фон ячейки
вот строка которая делает фон ячейки "G9" на листе "Лист1" - желтым только без мельканий и проблем
Код: plaintext
 Sheets("Лист1").Range("G9").Interior.ColorIndex =  6 

а еще вот
Выполнение макроса и диалоговые окна
...
Рейтинг: 0 / 0
Excel проблема с защитой листа
    #34285979
eda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
eda
Гость
В коде не используется ни "select" ни "activate". Делаю аналогично приведенному примеру:
Код: plaintext
1.
2.
3.
4.
5.
Sub InsMin(SheetName As String, MinDocDone As Integer, X As Integer, Color As Integer)
    Application.ThisWorkbook.Worksheets(MainSheetNum).Unprotect Password:="999"
    Application.ThisWorkbook.Worksheets(MainSheetNum).Cells(X,  8 ).Value = MinDocDone
    Application.ThisWorkbook.Worksheets(MainSheetNum).Cells(X,  8 ).Interior.ColorIndex = Color
    Application.ThisWorkbook.Worksheets(MainSheetNum).Protect Password:="999"
End Sub
Если эту процедуру вызывать в цикле - то происходит многочисленное мигание обновляемого листа, если же цикл поместить между Unprotect ... Protect , соответственно, обновляемый лист становится видимым на бОльший промежуток времени, но 1 раз :(

А вот совет с использованием
Код: plaintext
1.
Rem Обновление экрана при работе приложения отключено
Application.ScreenUpdating = False
перед манипуляциями с защитой, и
Код: plaintext
1.
Rem Обновление экрана при работе приложения отключено
Application.ScreenUpdating = True
по завершению - помог избавится от миганий, за что большое спасибо.
...
Рейтинг: 0 / 0
Excel проблема с защитой листа
    #34286838
ring27
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно без VBA
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel проблема с защитой листа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]