powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Цвет в сводной таблице
15 сообщений из 15, страница 1 из 1
Цвет в сводной таблице
    #35139880
RomanH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.
Хочется вот чего.
Имеется сводная таблица. Все находится в Области строк.
Так вот в Области строк есть поле "Действие". В этом поле могут содержаться такие значения
"Работа" и "Переезд".
Как мне закрашивать в какой нибудь цвет те строки в которых поле "Действие" содержит значение "Переезд".
Вообще можно ли такое сделать. Если я задал глупый вопрос не ругайтесь:)
...
Рейтинг: 0 / 0
Цвет в сводной таблице
    #35139900
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RomanHПривет всем.
Хочется вот чего.
Имеется сводная таблица. Все находится в Области строк.
Так вот в Области строк есть поле "Действие". В этом поле могут содержаться такие значения
"Работа" и "Переезд".
Как мне закрашивать в какой нибудь цвет те строки в которых поле "Действие" содержит значение "Переезд".
Вообще можно ли такое сделать. Если я задал глупый вопрос не ругайтесь:)

пример в студию
...
Рейтинг: 0 / 0
Цвет в сводной таблице
    #35139917
RomanH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот примерчик
...
Рейтинг: 0 / 0
Цвет в сводной таблице
    #35140029
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
Sub Макрос1()
 ActiveSheet.PivotTables("СводнаяТаблица1").PivotSelect "Переезд"
 Selection.Interior.ColorIndex =  40 
 Range("a1").Select
End Sub

Если этого недостаточно, то попробуйте так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Sub Макрос2()
 ActiveSheet.PivotTables("СводнаяТаблица1").PivotSelect ""
 Set rng1 = Selection.Offset(,  1 ).Resize(, Selection.Columns.Count -  1 )
 ActiveSheet.PivotTables("СводнаяТаблица1").PivotSelect "Переезд"
 Set rng2 = Selection.EntireRow
 Set rng3 = Intersect(rng1, rng2)
 rng3.Interior.ColorIndex =  40 
 Range("a1").Select
End Sub
...
Рейтинг: 0 / 0
Цвет в сводной таблице
    #35140057
RomanH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
->Deggasad
Спасибо ОГРОМНОЕ, просто ОГРОМАДНЕЙШЕЕ.
Я просто в восторге.
А попутно можно вопрос задать.
Имеется ли в Excel такое понятие как событие.
Т.е. выполнение Макрос2 хотелось бы вызвать на событие перенос полей.
И тогда всегда цвет в сводной таблице будет актуальным.
...
Рейтинг: 0 / 0
Цвет в сводной таблице
    #35140087
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
См на рисунке в модуле листа выбери Worksheet, а затем событие Change. Внутри указанных строк вставь код из макроса2 и он будет отрабатывать при любом изменении на листе.
...
Рейтинг: 0 / 0
Цвет в сводной таблице
    #35140118
RomanH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
->Deggasad
Супер, еще раз огромное спасибо.
Теперь можно изучать тело супермакроса Макрос2().
И обрабатывать всякие ситуации :)
...
Рейтинг: 0 / 0
Цвет в сводной таблице
    #35140135
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub Worksheet_Change(ByVal Target As Range)
 Set mySelect = Selection
 ActiveSheet.PivotTables("СводнаяТаблица1").PivotSelect ""
 Set rng1 = Selection.Offset(,  1 ).Resize(, Selection.Columns.Count -  1 )
 ActiveSheet.PivotTables("СводнаяТаблица1").PivotSelect "Переезд"
 Set rng2 = Selection.EntireRow
 Set rng3 = Intersect(rng1, rng2)
 rng1.Interior.ColorIndex = xlNone
 rng3.Interior.ColorIndex =  40 
 mySelect.Select
End Sub

более менее рабочий код, правда срабатывает при любом изменении на листе
...
Рейтинг: 0 / 0
Цвет в сводной таблице
    #35140776
RomanH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
->Deggasad
Доброе утро, вот это точно рабочий код.
В 2007 прорисовывается мигая, а вот в 2003, быстро почти не заметно.
Класс!
...
Рейтинг: 0 / 0
Цвет в сводной таблице
    #35140986
RomanH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите пожайлусто,как проверить есть ли в одном из поле сводной таблицы определенное значение , если есть то продолжаем.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
[SRC vba]Private Sub Worksheet_Change(ByVal Target As Range)

 Set mySelect = Selection
 ActiveSheet.PivotTables("СводнаяТаблица1").PivotSelect ""
 'Вся сводная таблица
 Set rng1 = Selection.Offset(,  0 ).Resize(, Selection.Columns.Count -  1 )
 Если есть в поле "Действие" значение "Переезд" то
 {
 ActiveSheet.PivotTables("СводнаяТаблица1").PivotSelect "Переезд"
 '????
 Set rng2 = Selection.EntireRow
 Set rng3 = Intersect(rng1, rng2)
 'Цвет для всей сводной таблицы
 rng1.Interior.ColorIndex = xlNone
 'Цвет для полей которые пересеклись
 rng3.Interior.ColorIndex =  40 
 }
 'Закрасить все
 mySelect.Select
 
End Sub
[/SRC]
...
Рейтинг: 0 / 0
Цвет в сводной таблице
    #35141535
RomanH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищи, подскажите, какое свойство или метод использовать для проверки значения в определенном поле.
А то макрос ругается, если выбрать в поле "Действие" значение не равено "Переезд"
...
Рейтинг: 0 / 0
Цвет в сводной таблице
    #35141566
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Private Sub Worksheet_Change(ByVal Target As Range)

 Set mySelect = Selection
 ActiveSheet.PivotTables("СводнаяТаблица1").PivotSelect ""
 'Вся сводная таблица
 Set rng1 = Selection.Offset(,  0 ).Resize(, Selection.Columns.Count -  1 )

On error resume next
 ActiveSheet.PivotTables("СводнаяТаблица1").PivotSelect "Переезд"
 Set rng2 = Selection.EntireRow
On error go to  0 
If not rng2 is nothing then
 Set rng3 = Intersect(rng1, rng2)
 'Цвет для всей сводной таблицы
 rng1.Interior.ColorIndex = xlNone
 'Цвет для полей которые пересеклись
 rng3.Interior.ColorIndex =  40 
End if

mySelect.Select
 
End Sub
...
Рейтинг: 0 / 0
Цвет в сводной таблице
    #35142018
RomanH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять проблемы с закраской :(
В этот раз хочу закрашивать две строки разными цветами.
Этот код почему то работает только тогда когда в условие фильтрации поля "Действия" указываю
"Начало работы с ТТ".
А в остальных случаях пишет ошибку

Формула не завершена.Проверьте, не пропушена ли закрывающая квадратная скобка(]).

Зачем эта квадратная скобка я не знаю.
И это ошибка появляется когда это поле вывожу из области строк.

->Deggasad, спасибо, теперь я почти умею обрабатывать исключительные ситуации в Excel.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
Private Sub Worksheet_Change(ByVal Target As Range)
Set mySelect = Selection
 ActiveSheet.PivotTables("СводнаяТаблица1").PivotSelect ""
 Set rngAll = Selection.Offset(,  0 ).Resize(, Selection.Columns.Count)

rngAll.Interior.ColorIndex = xlNone 'Очистить все область

On Error GoTo NotPaintPereezd 'если ошибка закрасить "Переезд", отмечаем что красить не надо
 ActiveSheet.PivotTables("СводнаяТаблица1").PivotSelect "Переезд"
 Set rngPereezd = Selection.EntireRow
GoTo SetPaintPereezd 'Иначе получаем границы выбора и рисуем

NotPaintPereezd:
Set rngPereezd = Nothing

SetPaintPereezd:
If Not rngPereezd Is Nothing Then
 Set rngIntersectPereezd = Intersect(rngAll, rngPereezd)
 rngIntersectPereezd.Interior.ColorIndex =  40 
End If

On Error GoTo NotPaintVisit
ActiveSheet.PivotTables("СводнаяТаблица1").PivotSelect "начало работы с ТТ"
Set rngVisit = Selection.EntireRow
GoTo SetPaintVisit

NotPaintVisit:
Set rngVisit = Nothing

SetPaintVisit:
If Not rngVisit Is Nothing Then
Set rngIntersectVisit = Intersect(rngAll, rngVisit)
rngIntersectVisit.Interior.ColorIndex =  22 
End If

mySelect.Select 'Закрасить указанными цветами

End Sub
...
Рейтинг: 0 / 0
Цвет в сводной таблице
    #35142280
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поробуйте так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Private Sub Worksheet_Change(ByVal Target As Range)
Set mySelect = Selection
 
 ActiveSheet.PivotTables("СводнаяТаблица1").PivotSelect ""
 Set rngAll = Selection

rngAll.Interior.ColorIndex = xlNone 'Очистить все область

On Error Resume Next
  ActiveSheet.PivotTables("СводнаяТаблица1").PivotSelect "Переезд"
  If Err.Number =  0  Then
    Set rngPereezd = Selection.EntireRow
    Intersect(rngAll, rngPereezd).Interior.ColorIndex =  40 
  End If
  Err.Clear
On Error GoTo  0 

On Error Resume Next
  ActiveSheet.PivotTables("СводнаяТаблица1").PivotSelect "начало работы с ТТ"
 Debug.Print Err.Number
  If Err.Number =  0  Then
    Set rngVisit = Selection.EntireRow
    Intersect(rngAll, rngVisit).Interior.ColorIndex =  22 
  End If
  Err.Clear
On Error GoTo  0 

mySelect.Select 

End Sub

И мой вам совет не используйте Goto line . Это только на первый взгляд всё просто и удобно, а на самом деле очень быстро запутаться
...
Рейтинг: 0 / 0
Цвет в сводной таблице
    #35144424
RomanH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-> Deggasad
Даже не знаю как Вас и благодарить. Спасибо


Очень хорошее пособие получилось то, блягодаря многоуважаемому Deggasad для дизайнеров сводных таблиц. ;)
А быстро то как, ваще супер.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Цвет в сводной таблице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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