Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Фильтр в сводной таблице / 7 сообщений из 7, страница 1 из 1
05.05.2016, 21:21
    #39230363
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в сводной таблице
Здравствуйте!

Макрос строит сводную таблицу. Поле "Статус" ставит в фильтр и устанавливает значение "План выполнен". Бывают случаи, когда в исходных данных отсутствует значение "План выполнен". И макрос выполняется с ошибкой. Как можно сделать так, если отсутствует значение, то макрос прекращает строить сводную таблицу, и продолжает работать дальше (строит другие таблицы)?
...
Рейтинг: 0 / 0
07.05.2016, 23:16
    #39231395
kos20
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в сводной таблице
ferzmikk,

Это зачем?
Код: vbnet
1.
PT.PivotFields("Статус").CurrentPage = "Выполнен план"
...
Рейтинг: 0 / 0
07.05.2016, 23:26
    #39231397
kos20
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в сводной таблице
может Name
...
Рейтинг: 0 / 0
10.05.2016, 07:14
    #39232042
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в сводной таблице
kos20ferzmikk,

Это зачем?
Код: vbnet
1.
PT.PivotFields("Статус").CurrentPage = "Выполнен план"



Вообще нужно построить сводную таблицу, где в фильтре поля "Статус" выбирается элемент "Выполнен план". Просто не всегда присутствует такое значение в исходных данных
...
Рейтинг: 0 / 0
10.05.2016, 22:31
    #39232881
kos20
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в сводной таблице
попробуй так

Код: vbnet
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.
Sub Макрос()
    Dim PTCache As PivotCache
    Dim PT As PivotTable

    For Each PTForDelete In ThisWorkbook.Sheets("Сводная таблица").PivotTables
        PTForDelete.TableRange2.Clear
    Next PTForDelete

    Set PTCache = ThisWorkbook.PivotCaches.Create( _
        SourceType:=xlDatabase, _
        SourceData:=ThisWorkbook.Worksheets("Исходные данные").Range("A1").CurrentRegion.Address)

    ThisWorkbook.Sheets("Сводная таблица").Activate
    Set PT = ThisWorkbook.Sheets("Сводная таблица").PivotTables.Add( _
        PivotCache:=PTCache, _
        TableDestination:=ThisWorkbook.Sheets("Сводная таблица").Range("A2"), _
        TableName:="СводнаяТаблица")
        
        
    Set PT = ActiveSheet.PivotTables("СводнаяТаблица")
    PT.PivotFields("Статус").Orientation = xlColumnField
    PT.PivotFields("ТТ").Orientation = xlRowField

With ActiveSheet.PivotTables("СводнаяТаблица").PivotFields("Статус")
     For Each PItem In .PivotItems
        PItem.Visible = False
        If PItem.Name = "Выполнен план" Then PItem.Visible = True
     Next
End With
  
End Sub
...
Рейтинг: 0 / 0
11.05.2016, 08:23
    #39232983
ferzmikk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в сводной таблице
kos20попробуй так

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
...
With ActiveSheet.PivotTables("СводнаяТаблица").PivotFields("Статус")
     For Each PItem In .PivotItems
        PItem.Visible = False
        If PItem.Name = "Выполнен план" Then PItem.Visible = True
     Next
End With  
...


Если в исходной базе данных в поле "Статус" только одно значение ("План не выполнен"), то на выделенной строке вылезает ошибка "Нельзя установить свойство Visible класса PivotItem". Если присутствует больше одного значения ("План не выполнен" и "Выполнен план"), то ошибка не вылезает.
...
Рейтинг: 0 / 0
11.05.2016, 12:16
    #39233197
kos20
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фильтр в сводной таблице
ferzmikk,
проще всего влепи выше On Error Resume Next
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Фильтр в сводной таблице / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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