Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
получение и вставка первой видимой ячейки после фильтрации таблицы в Excel в код макроса, передача в переменную итога работы другого макроса
 
Добрый день!
На листе "расчёт" есть таблица в которой я произвожу расчёт. Периодически есть необходимость фильтровать таблицу по названиям поставщиков и продуктов.
Эти названия поставщиков продуктов я часто выбираю на другом листе "BI" в сводных для просмотра ряда характеристик. Что бы не копировать каждый раз названия поставщиков и продуктов записал макрос

Код
Sub ФильтрыСводных()

Dim nameВТМ As String
nameВТМ = Sheets("расчёт").Range("I7")
Dim nameSKU As String
nameSKU = Sheets("расчёт").Range("C7")
    
    Sheets("BI").Select
    ActiveSheet.PivotTables("Сводная таблица8").PivotFields( _
        "[prod].[SKU - ВТМ].[SKU - ВТМ]").VisibleItemsList = Array("[prod].[SKU - ВТМ].&[" & nameВТМ & "]")
    ActiveSheet.PivotTables("Сводная таблица8").PivotFields( _
        "[prod].[SKU - НАИМЕНОВАНИЕ АНАЛОГ].[SKU - НАИМЕНОВАНИЕ АНАЛОГ]").VisibleItemsList = Array("[prod].[SKU - НАИМЕНОВАНИЕ АНАЛОГ].&[" & nameSKU & "]")
    ActiveSheet.PivotTables("Сводная таблица3").PivotFields( _
         "[product].[SKU - ВТМ].[SKU - ВТМ]").VisibleItemsList = Array("[product].[SKU - ВТМ].&[" & nameВТМ & "]")
   
End Sub


Он работает.
Однако с листа "расчёт" макрос получает только первые названия поставщика и товара после заголовка таблицы из ячеек "I7" и "C7".
Нашёл макрос которой находит именно первое видимое значение в отфильтрованной ячейке.

Код
Sub FirstVisibleCell()
   With Worksheets("расчёт").AutoFilter.Range
       ActiveCell.Value2 = Range("C" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
    End With

End Sub


Хочу результат его работы передать в переменную первого макроса, но пока не получается. Пробовал так
Код
Sub Фильтры()
Dim nameВТМ As String
    With Worksheets("расчёт").AutoFilter.Range
       ActiveCell.Value2 = Range("C" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
    End With
однако ругается = Run-time error '1004: Unable to get the SpecialCells property of the Range class

Подскажите пжл что делаю не так?
Изменено: Максим78 - 29.04.2025 13:12:51 (отформатировал код)
подставить значение переменной макроса в фильтр сводной
 
Добрый день!
Есть сводная таблица построенная на вроде на основе OLAP-куба на листе "BI". Хочу сделать так, чтобы макросом в фильтр сводной таблицы передавалось значение с листа "расчёт" из ячейки "I7". В этой ячейке меняются текстовые значения. Через макрорекордер записал макрос и потом попробовал его переделать.

Получилось так
Sub Макрос3()
Dim name1 As String
name1 = Sheets("расчёт").Range("I7")
   
   Sheets("BI").Select
   ActiveSheet.PivotTables("Сводная таблица8").PivotFields( _
       "[prod].[SKU - ВТМ].[SKU - ВТМ]").VisibleItemsList = Array("[prod].[SKU - ВТМ].[SKU - ВТМ].&[" & name1 & "]")
End Sub

при выполнении выдаёт ошибку:
Run-time error '1004:
Не удается найти элемент в кубе OLAP.

в Debug подсвечивает эту часть
  ActiveSheet.PivotTables("Сводная таблица8").PivotFields( _
       "[prod].[SKU - ВТМ].[SKU - ВТМ]").VisibleItemsList = Array("[prod].[SKU - ВТМ].[SKU - ВТМ].&[" & name1 & "]")

Подскажите пжл, что не так указываю?
Изменено: Максим78 - 07.11.2024 16:23:08
power query ошибка без ошибки, запрос в power query выдаёт ошибки хотя по шагам всё проходит нормально
 
Добрый день!
Начинаю работать с power query, написал запрос к таблице в книге. Внутри запроса если идти по шагам, то нет ошибок. В выгружаемой запросом таблице тоже нет ошибок (насколько понимаю). Ошибки, а их столько, сколько выгружается строк видно только в разделе где отражаются запросы.

Не понимаю из-за чего возникает ошибка и в чём она состоит?
заранее всем спасибо
Изменено: Максим78 - 02.04.2024 10:46:04
Страницы: 1
Наверх