Друзья, нет времени автоматизировать рутинные действия в десятке файлов отчетов магазинов. Наработки есть и это работало, пока не навесил доп функционал.
Готов оплатить работу тому, кто сделает быстро и качественно - на карточку.
Мне нужно, сначала, выставить требуемый магазин:
это решается конструкцией типа:
Код |
---|
Sub Выбор_магазина() ' ' Выбор_магазина Макрос ' ' Sheets("1_Планы_сотрудников_и_магазина").Select Sheets("Выбор_магазина").Visible = True With ActiveWorkbook.SlicerCaches("Срез_Магазин.") .SlicerItems("Ашан").Selected = True .SlicerItems("Billa").Selected = False .SlicerItems("Маяк").Selected = False .SlicerItems("Вышка").Selected = False End With With ActiveWorkbook.SlicerCaches("Срез_Магазин311111") .SlicerItems("Ашан").Selected = True .SlicerItems("Billa").Selected = False .SlicerItems("Маяк").Selected = False .SlicerItems("Вышка").Selected = False End With With ActiveWorkbook.SlicerCaches("Срез_Магазин") .SlicerItems("Ашан").Selected = True .SlicerItems("Billa").Selected = False .SlicerItems("Маяк").Selected = False .SlicerItems("Вышка").Selected = False End With With ActiveWorkbook.SlicerCaches("Срез_Магазин1") .SlicerItems("Ашан").Selected = True .SlicerItems("Billa").Selected = False .SlicerItems("Маяк").Selected = False .SlicerItems("Вышка").Selected = False End With With ActiveWorkbook.SlicerCaches("Срез_Магазин2") .SlicerItems("Ашан").Selected = True .SlicerItems("Billa").Selected = False .SlicerItems("Маяк").Selected = False .SlicerItems("Вышка").Selected = False End With Sheets("Выбор_магазина").Select ActiveWindow.SelectedSheets.Visible = False End Sub |
Второй макрос, на более ранней стадии, открывал файл, обновлял все сводные, сохранял файл в папку OneDrive, а сам файл закрывал.
Код |
---|
Private Sub Workbook_Open() Application.DisplayAlerts = False ActiveWorkbook.RefreshAll 'обновление сводных таблиц Application.Wait (Now + TimeValue("0:00:10")) ActiveWorkbook.SaveAs Filename:= _ "https://pgroup-my.sharepoint.com/personal/p_pgroup_onmicrosoft_com/Documents/Ашан.xlsm" _ , FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False Application.Wait (Now + TimeValue("0:00:10")) ActiveWorkbook.Close |
Теперь хочу несколько изменить и объединить оба макроса в один и повесить все действия на открытие файла и его название.
1. Открыть файл.
2. Открыть скрытый лист.
3. Выставить .SlicerItems("Название_файла").Selected = True
4. Сделать паузу для обработки срезов ( видимо из-за не очень чистого метода, процесс занимает секунд 15-20)
5. Закрыть скрытый лист
6. Запустить обновление всех сводных таблиц с внешнего содержимого
7. Сделать паузу для обработки сводных
8 Сохранить файл.
9.Сохранить его копию в хранилище OneDrive. ( раньше копии не делал )
10. Закрыть файл
Напрямую, в папке OneDrive ничего корректно не работает. Файл обрабатывается в другой папке, а потом принудительно заменяет собой уже существующий файл в OneDrive.
Алексей
.