Делаю для себя программу(ну как делаю, методами сотни проб на ошибок, так как программировать я не умею) на макросах по "учёту картриджей", в принципе всё сделал, но возникла идея максимально упростить отчёт по количеству принятых картриджей. Запнулся я на фильтрации даты в сводной таблице. Штука сделана неудобно, в новой фишке 2013 тоже не очень удобно реализовано методами excel. Проблема #1 у меня дата вводится автоматом при добавлении нового перемещения картриджа по кнопке:
Дата оказывается, где надо, и как надо, но excel не воспринимает её как дату(ячейки в формате даты), пока мышкой на эту ячейку не нажмёшь. Соответственно фильтр с условиями для даты не работает. Может кто подскажет что нужно добавить. Проблема #2 Есть форма, в форме выбирается первая дата и вторая дата. Между этими датами должен отфильтроваться список. К сожалению ничего не нашёл, кроме разве что вот. Но в той теме не интервал, а "менее той даты". Проблема #3 У меня есть такой код, нашёл в гугле, переделал под себя.
Код
Private Sub CommandButton18_Click()
On Error Resume Next
Application.DisplayAlerts = False
Sheets("Отчёт для акта").Delete
Application.DisplayAlerts = True
On Error Resume Next
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="Картриджи!A1:L9999").CreatePivotTable TableDestination:="", TableName:="otchet"
With ActiveSheet
.Name = "Отчёт для акта"
.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
End With
With ActiveSheet.PivotTables("otchet")
.SmallGrid = True
.PivotFields("Дата").Orientation = xlPageField
.PivotFields("Местоположение").Orientation = xlPageField
.PivotFields("Статус").Orientation = xlPageField
.PivotFields("Модель").Orientation = xlRowField
.PivotFields("Кол-во").Orientation = xlDataField
ActiveSheet.PivotTables("otchet").PivotFields("Местоположение").CurrentPage = "Стационар"
ActiveSheet.PivotTables("otchet").PivotFields("Статус").CurrentPage = "Принято"
End With
End Sub
Он формирует сводную таблицу, но если скажем я сформирую таблицу вручную, перед этим отфильтрую по дате, то сводная таблица будет только из этих значений, которые остались после фильтра. Если же создаю таблицу макросом, то он берёт значения и те, что "спрятаны" фильтром. Хочу, чтобы получилось так.
Я нажимаю на отчёт. Вылезает меню.
Ввожу первую и вторую дату, дата выбирается при навидении через календарь. Спасибо этой теме При и уже при нажатии одной из кнопок формируется отчёт с учётом выбранного интервала даты. Как вариант, либо чтобы сначала фильтровалось таблица, а потом уже на основе её делался сводный отчёт, либо уже фильтр применялся на сводном отчёте. Файл загружаю, правда в моём коде чёрт ногу сломит, так как я его почти не чистил от "мусора", но всё же Заранее благодарен
2.1. Название темы должно отражать смысл проблемы. Темы с названиями "Помогите", "Help", "Срочно", "Нужен макрос" - плохая идея. Модераторы имеют право переименовать, удалить или закрыть такие темы без предупреждения. 2.2. Опишите максимально подробно вашу задачу и желаемый результат. Желательно уточнить вашу версию Excel. 2.3. Приложите файл(ы) с примером (общим весом не более 300Кб) в реальной структуре и форматах данных того, что есть сейчас и того, что хотелось бы на выходе.