Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Заливка ячеек по условию - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Заливка ячеек по условию (Макросы/Sub)
Заливка ячеек по условию
Сергей13 Дата: Среда, 18.07.2018, 00:23 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Здравствуйте.
Подскажите пожалуйста почему не работает условие.
На защищенном листе часть ячеек не имеет защиту, необходимо по условию выполнить выборочную заливку в не защищенных ячейках, для условия использую Selection.Locked = False, но данный код не срабатывает
[vba]
Код
Sub Color1()
      If Selection.Locked = False Then Selection.Interior.Color = 14281213
End Sub
[/vba]
 
Ответить
СообщениеЗдравствуйте.
Подскажите пожалуйста почему не работает условие.
На защищенном листе часть ячеек не имеет защиту, необходимо по условию выполнить выборочную заливку в не защищенных ячейках, для условия использую Selection.Locked = False, но данный код не срабатывает
[vba]
Код
Sub Color1()
      If Selection.Locked = False Then Selection.Interior.Color = 14281213
End Sub
[/vba]

Автор - Сергей13
Дата добавления - 18.07.2018 в 00:23
_Boroda_ Дата: Среда, 18.07.2018, 00:39 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13245
Репутация: 5454 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А если циклом пробежаться?
[vba]
Код
Sub Color1()
    For Each d In Selection
        With d
            If .Locked = False Then .Interior.Color = 14281213
        End With
    Next d
End Sub
[/vba]
Можно засунуть всю кучу в Юнион и потом все сразу покрасить


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА если циклом пробежаться?
[vba]
Код
Sub Color1()
    For Each d In Selection
        With d
            If .Locked = False Then .Interior.Color = 14281213
        End With
    Next d
End Sub
[/vba]
Можно засунуть всю кучу в Юнион и потом все сразу покрасить

Автор - _Boroda_
Дата добавления - 18.07.2018 в 00:39
Сергей13 Дата: Среда, 18.07.2018, 00:51 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, Понял, сама защита листа не дает выполнить код, поэтому только так
[vba]
Код
Sub Color1()
    ActiveSheet.Unprotect
    For Each d In Selection
        With d
            If .Locked = False Then .Interior.Color = 14281213
        End With
    Next d
    ActiveSheet.Protect
End Sub
[/vba]
[vba]
Код
Sub Color1()
    ActiveSheet.Unprotect
    If Selection.Locked = False Then Selection.Interior.Color = 14281213
    ActiveSheet.Protect
End Sub
[/vba]
Большое спасибо _Boroda_
 
Ответить
Сообщение_Boroda_, Понял, сама защита листа не дает выполнить код, поэтому только так
[vba]
Код
Sub Color1()
    ActiveSheet.Unprotect
    For Each d In Selection
        With d
            If .Locked = False Then .Interior.Color = 14281213
        End With
    Next d
    ActiveSheet.Protect
End Sub
[/vba]
[vba]
Код
Sub Color1()
    ActiveSheet.Unprotect
    If Selection.Locked = False Then Selection.Interior.Color = 14281213
    ActiveSheet.Protect
End Sub
[/vba]
Большое спасибо _Boroda_

Автор - Сергей13
Дата добавления - 18.07.2018 в 00:51
_Boroda_ Дата: Среда, 18.07.2018, 01:09 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 13245
Репутация: 5454 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Можно при ручной защите ставить галку на разрешение форматирования ячеек
Или защищать лист макросом с разрешением их (макросов) работы. Почитайте эту тему http://www.excelworld.ru/forum/10-16909-1


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеМожно при ручной защите ставить галку на разрешение форматирования ячеек
Или защищать лист макросом с разрешением их (макросов) работы. Почитайте эту тему http://www.excelworld.ru/forum/10-16909-1

Автор - _Boroda_
Дата добавления - 18.07.2018 в 01:09
Сергей13 Дата: Среда, 18.07.2018, 01:11 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 22
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, Благодарю
 
Ответить
Сообщение_Boroda_, Благодарю

Автор - Сергей13
Дата добавления - 18.07.2018 в 01:11
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Заливка ячеек по условию (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2018 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!