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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос для обновления сводной. Ссылка на ячейку с датой - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос для обновления сводной. Ссылка на ячейку с датой (Макросы/Sub)
Макрос для обновления сводной. Ссылка на ячейку с датой
ex Дата: Воскресенье, 31.07.2022, 23:31 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Добрый день!

Есть отчет с большим кол-во сводных таблиц, который я регулярно перестраиваю. Соответственно, мне надо зайти в фильтр каждой сводной и поменять дату на новую. Решил попробовать делать это макросом. Записал его через функцию "Запись макроса" (пример для одной сводной ниже, в данном случае я меняю дату на 31.07.22). Мне бы хотелось, чтобы новую дату макрос брал из ячейки А1 на листе "Даты", этот лист находится в той же книге. Т.е. мне не надо будет вносить изменения в макрос, а просто потребуется поменять дату в ячейке A1. Подскажите, пожалуйста, как это прописать в макросе. Заранее спасибо!
Файл не прикладываю, поскольку сводная из отчета все равно не будет работать без подключения.

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

'
ActiveSheet.PivotTables("Сводная таблица4").PivotFields( _
"[DimDate].[Year-Month-Date].[Year]").VisibleItemsList = Array("")
ActiveSheet.PivotTables("Сводная таблица4").PivotFields( _
"[DimDate].[Year-Month-Date].[Month]").VisibleItemsList = Array("")
ActiveSheet.PivotTables("Сводная таблица4").PivotFields( _
"[DimDate].[Year-Month-Date].[Date]").VisibleItemsList = Array( _
"[DimDate].[Year-Month-Date].[Date].&[2022-07-31T00:00:00]")
End Sub
[/vba]
 
Ответить
СообщениеДобрый день!

Есть отчет с большим кол-во сводных таблиц, который я регулярно перестраиваю. Соответственно, мне надо зайти в фильтр каждой сводной и поменять дату на новую. Решил попробовать делать это макросом. Записал его через функцию "Запись макроса" (пример для одной сводной ниже, в данном случае я меняю дату на 31.07.22). Мне бы хотелось, чтобы новую дату макрос брал из ячейки А1 на листе "Даты", этот лист находится в той же книге. Т.е. мне не надо будет вносить изменения в макрос, а просто потребуется поменять дату в ячейке A1. Подскажите, пожалуйста, как это прописать в макросе. Заранее спасибо!
Файл не прикладываю, поскольку сводная из отчета все равно не будет работать без подключения.

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

'
ActiveSheet.PivotTables("Сводная таблица4").PivotFields( _
"[DimDate].[Year-Month-Date].[Year]").VisibleItemsList = Array("")
ActiveSheet.PivotTables("Сводная таблица4").PivotFields( _
"[DimDate].[Year-Month-Date].[Month]").VisibleItemsList = Array("")
ActiveSheet.PivotTables("Сводная таблица4").PivotFields( _
"[DimDate].[Year-Month-Date].[Date]").VisibleItemsList = Array( _
"[DimDate].[Year-Month-Date].[Date].&[2022-07-31T00:00:00]")
End Sub
[/vba]

Автор - ex
Дата добавления - 31.07.2022 в 23:31
Pelena Дата: Понедельник, 01.08.2022, 07:24 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19176
Репутация: 4413 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте.
Попробуйте эту часть[vba]
Код
"[DimDate].[Year-Month-Date].[Date].&[2022-07-31T00:00:00]"
[/vba]записать
[vba]
Код
"[DimDate].[Year-Month-Date].[Date].&[" & Sheets("Даты").Range("A1") & "T00:00:00]"
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
Попробуйте эту часть[vba]
Код
"[DimDate].[Year-Month-Date].[Date].&[2022-07-31T00:00:00]"
[/vba]записать
[vba]
Код
"[DimDate].[Year-Month-Date].[Date].&[" & Sheets("Даты").Range("A1") & "T00:00:00]"
[/vba]

Автор - Pelena
Дата добавления - 01.08.2022 в 07:24
ex Дата: Понедельник, 08.08.2022, 11:25 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Добрый день!

Попробовал вышеприведенный код, теперь макрос не работает и выдает ошибку:

Run-time error ' 1004':

Невозможно получить свойство PivotTables класса Worksheet

Как я понимаю, тут дело в формате даты, на которую ссылается макрос. Я пробовал и текстовый формат, и дата, и общий - не помогает.
 
Ответить
СообщениеДобрый день!

Попробовал вышеприведенный код, теперь макрос не работает и выдает ошибку:

Run-time error ' 1004':

Невозможно получить свойство PivotTables класса Worksheet

Как я понимаю, тут дело в формате даты, на которую ссылается макрос. Я пробовал и текстовый формат, и дата, и общий - не помогает.

Автор - ex
Дата добавления - 08.08.2022 в 11:25
RAN Дата: Понедельник, 08.08.2022, 12:51 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
У вас есть выбор
1. Сделать пример, который будет работать без подключения
2. Продолжать понимать дальше


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеУ вас есть выбор
1. Сделать пример, который будет работать без подключения
2. Продолжать понимать дальше

Автор - RAN
Дата добавления - 08.08.2022 в 12:51
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос для обновления сводной. Ссылка на ячейку с датой (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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