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

Вход

Регистрация

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

 

= Мир MS Excel/Фильтр в сводной таблице OLAP при не совпадений с вн списком - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Фильтр в сводной таблице OLAP при не совпадений с вн списком (Макросы/Sub)
Фильтр в сводной таблице OLAP при не совпадений с вн списком
creyc-alvlad Дата: Вторник, 17.12.2019, 23:28 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Всем доброго дня!

Есть сводная таблица на основе OLAP с огромным списком всего, и есть определенный список, который необходимо отобразить в данной сводной таблице OLAP.

Файл с примером приложите не получается, но вот рабочий макрос, который фильтрует данные в сводной таблице, но если в списке будет значение, которого нет в OLAP, то ошибка

[vba]
Код
Sub Макрос1()

Dim y As Integer
Dim arr(2 To 100)

For y = 2 To 100
If Sheets("1").Range("K" & y).Value <> 0 Then
arr(y) = "[OLAP].[Код номенклатуры].&[" & Sheets("1").Range("K" & y).Value & "]"
End If
Next y
Sheets("1").PivotTables("1").PivotFields("[OLAP].[Код номенклатуры].[Код номенклатуры]").VisibleItemsList = arr

End Sub
[/vba]

Просьба подсказать, как это можно поправить.


Сообщение отредактировал creyc-alvlad - Среда, 18.12.2019, 09:44
 
Ответить
СообщениеВсем доброго дня!

Есть сводная таблица на основе OLAP с огромным списком всего, и есть определенный список, который необходимо отобразить в данной сводной таблице OLAP.

Файл с примером приложите не получается, но вот рабочий макрос, который фильтрует данные в сводной таблице, но если в списке будет значение, которого нет в OLAP, то ошибка

[vba]
Код
Sub Макрос1()

Dim y As Integer
Dim arr(2 To 100)

For y = 2 To 100
If Sheets("1").Range("K" & y).Value <> 0 Then
arr(y) = "[OLAP].[Код номенклатуры].&[" & Sheets("1").Range("K" & y).Value & "]"
End If
Next y
Sheets("1").PivotTables("1").PivotFields("[OLAP].[Код номенклатуры].[Код номенклатуры]").VisibleItemsList = arr

End Sub
[/vba]

Просьба подсказать, как это можно поправить.

Автор - creyc-alvlad
Дата добавления - 17.12.2019 в 23:28
_Boroda_ Дата: Среда, 18.12.2019, 01:09 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15747
Репутация: 6143 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
creyc-alvlad, - Прочитайте Правила форума
- Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщениеcreyc-alvlad, - Прочитайте Правила форума
- Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)

Автор - _Boroda_
Дата добавления - 18.12.2019 в 01:09
creyc-alvlad Дата: Вторник, 24.12.2019, 09:24 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Помогли решить данную проблему:

[vba]
Код
Sub Макрос1()
Dim y As Integer
Dim arr(2 To 100)
  For y = 2 To 100
    If Sheets("1").Range("K" & y).Value <> 0 And _
        Application.WorksheetFunction.CountIf(Sheets("1").Range("A1:A5000"), Sheets("1").Range("K" & y).Value) > 0 Then
      arr(y) = "[Таблица1].[Код номенклатуры].&[" & Sheets("1").Range("K" & y).Value & "]"
    End If
  Next y
Sheets("1").PivotTables("1").PivotFields("[Таблица1].[Код номенклатуры].[Код номенклатуры]").VisibleItemsList = arr
End Sub
[/vba]

Спасибо Aleksandr H. и Клубу ПРОграммистов
 
Ответить
СообщениеПомогли решить данную проблему:

[vba]
Код
Sub Макрос1()
Dim y As Integer
Dim arr(2 To 100)
  For y = 2 To 100
    If Sheets("1").Range("K" & y).Value <> 0 And _
        Application.WorksheetFunction.CountIf(Sheets("1").Range("A1:A5000"), Sheets("1").Range("K" & y).Value) > 0 Then
      arr(y) = "[Таблица1].[Код номенклатуры].&[" & Sheets("1").Range("K" & y).Value & "]"
    End If
  Next y
Sheets("1").PivotTables("1").PivotFields("[Таблица1].[Код номенклатуры].[Код номенклатуры]").VisibleItemsList = arr
End Sub
[/vba]

Спасибо Aleksandr H. и Клубу ПРОграммистов

Автор - creyc-alvlad
Дата добавления - 24.12.2019 в 09:24
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Фильтр в сводной таблице OLAP при не совпадений с вн списком (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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