Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel проблема с защитой листа / 5 сообщений из 5, страница 1 из 1
26.01.2007, 13:45:03
    #34285245
eda
eda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel проблема с защитой листа
Есть защищенный лист, на нем незащищаемые ячейки, в которые редактируются макросом. Значения в эти ячейки вносятся без проблем, а вот при попытке изменить их цвет фона - ошибка. Пробывал указанный на форуме способ:
...
Рейтинг: 0 / 0
26.01.2007, 13:53:02
    #34285283
eda
eda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel проблема с защитой листа
Есть защищенный лист, на нем незащищаемые ячейки, в которые редактируются макросом. Значения в эти ячейки вносятся без проблем, а вот при попытке изменить их цвет фона - ошибка. Пробывал указанный на форуме способ:
Код: plaintext
1.
2.
WorkSheet(i).Unprotect
...
WorkSheet(i).Protect
Все работает, только на время обновления обновляемы лист становится активным (макрос запускается по событию на другом листе), что при частом обновлении раздражает.
На основании вышеизложенного вопрос: как изменить цвет фона незащищенных ячеек на защищенном листе без "побочных" эффектов?
...
Рейтинг: 0 / 0
26.01.2007, 14:54:29
    #34285584
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel проблема с защитой листа
Наверняка в коде используется "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
26.01.2007, 16:20:34
    #34285979
eda
eda
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel проблема с защитой листа
В коде не используется ни "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
26.01.2007, 21:42:29
    #34286838
ring27
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel проблема с защитой листа
Можно без VBA
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel проблема с защитой листа / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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