Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
lixar21
0 / 0 / 0
Регистрация: 02.01.2017
Сообщений: 120
1

Массовая смена цвета - для автофигур определенного типа

22.04.2017, 19:54. Просмотров 341. Ответов 6
Метки нет (Все метки)

Здравствуйте, гуру экселя.
Помогите решить непростую техническую проблему.

На листе находится много всяких автофигур, в том числе автофигуры типа "Oval".
Рядом таблица - где указан тип фигур - Oval, Rectangle и т.д.

Если напротив стоит 0 - то фигура бесцветная, если 1 - то фигура - с желтой заливкой.
Событие Calculate.

То есть - если напротив строки Oval - написано "1" - то все фигуры-овалы на листе - становятся желтыми.
Или если напротив строки Oval - написано "0" - то все фигуры-овалы на листе - становятся с бесцветной заливкой.
0
Вложения
Тип файла: xls 53455.xls (79.5 Кб, 10 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2017, 19:54
Ответы с готовыми решениями:

Функция ВПР для определенного цвета ячейки
Всем привет! Пишу макрос с участием функции ВПР чего я пытаюсь добиться...

Массовая смена адреса гиперссылок в автообъектах (фигур)
Добрый день! Возник такой вопрос, на листе есть много автообъектов (фигур) с...

Макрос для Visio: смена цвета линий
доброго всем ! в visio первый раз с VBA столкнулся не судите строго... ...

Поиск текста в ячейках определенного цвета
Добрый день, уважаемые программисты. Помогите решить вопрос. В книге...

Защита ячеек определенного цвета макросом
Добрый день! Подскажите пожалуйста как сделать с помощью ВБА запрет на...

6
pashulka
2402 / 1224 / 499
Регистрация: 01.12.2010
Сообщений: 2,477
22.04.2017, 21:52 2
Если нужно именно событие Calculate, что предполагает наличие формул(ы), а не Change, то без перебора всех фигур, можно так :

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Worksheet_Calculate()
    For iRow& = 6 To 7
        With CallByName(Me, Cells(iRow&, 2) & "s", VbGet).ShapeRange.Fill
             If Cells(iRow&, 3) = 1 Then
                '.Visible = msoTrue
                .ForeColor.SchemeColor = 13
             Else
                .Visible = msoFalse
             End If
        End With
    Next
End Sub
0
lixar21
0 / 0 / 0
Регистрация: 02.01.2017
Сообщений: 120
23.04.2017, 00:08  [ТС] 3
pashulka , не работает

Если после 0, опять выставить 1 - то автофигуры (после обесцвечивания)- на это изменение уже никак не реагируют.
(с учетом пересчета листа разумеется)
0
pashulka
2402 / 1224 / 499
Регистрация: 01.12.2010
Сообщений: 2,477
23.04.2017, 00:43 4
Если обесцвечивание происходит, значит нельзя говорить, не работает.

А что касается изменения цвета заливки, то для начала раскомментируйте строку, если и в этом случае не получите желаемого результата, то хотя бы укажите свою версию Excel.


P.S. Если есть уверенность, что цвет заливки никто не поменяет вручную/программно, то "восстановление" цвета .ForeColor.SchemeColor = 13 можно убрать.
0
lixar21
0 / 0 / 0
Регистрация: 02.01.2017
Сообщений: 120
23.04.2017, 01:56  [ТС] 5
pashulka , я не очень большой специалист по макросам.

Как код должен выглядеть, чтобы после обесцвечивания (после выставления 0) - макрос продолжал работу (то есть возвращал желтый цвет при выставлении 1) ?
0
pashulka
2402 / 1224 / 499
Регистрация: 01.12.2010
Сообщений: 2,477
23.04.2017, 06:45 6
в строке #5 уберите апостроф '
0
lixar21
0 / 0 / 0
Регистрация: 02.01.2017
Сообщений: 120
23.04.2017, 11:41  [ТС] 7
pashulka , все работает. Большое спасибо.
0
23.04.2017, 11:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.04.2017, 11:41

Удалить в Excel текст определенного цвета
Подскажите как в Excel удалить текст только определенного цвета (красный: 255)....

Динамическая смена цвета по формуле
требуется чтобы в ячейке по формуле, например, =ЛистХ!A1, копировалось не...

Быстрая смена цвета и значений ячеек
Есть такая необходимость - быстро (порядка десяти раз в секунду) менять текст...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru