Уважаемые пользователи форума, обращаюсь к вам за помощью в макросе, который формирует сводную таблицу, причем это надо сделать, находясь в другом файле. Например: Я работаю в файле "Проверка" в котором есть несколько листов, в которые нужно импортировать (сформировать) сводные таблицы. Т.е., сделать кнопку (макрос), нажав на которую, открылось окно для выбора файла с источником данных (файл - "ОСВ ГК_01-2016"), а сводную таблицу, занести на определенный лист (лист "ОСВ ГК"). Я уже думал, что если нет возможности импорта сводной таблице из того файла где находятся данные, так может есть возможность, сформировать тамлицу в том файле, на новый лист (к примеру, "Лист1"), а потом с этого листа копировать?
Сводная таблица - 2075185.xlsx(21Kb) · Источник данных - 01-2016.xlsx(44Kb)
Есть код, который открывает файл, но как его применить в моем случаи, я не знаю.
[vba]
Код
Function GetFileName(Optional ByVal Title As String = "Выберите файл для обработки", _ Optional ByVal InitialPath, _ Optional ByVal MyFilter As String = "Книги Excel (*.xls*),") As String ' функция выводит диалоговое окно выбора папки с заголовком Title, ' начиная обзор диска с папки InitialPath ' возвращает полный путь к выбранной папке, или пустую строку в случае отказа от выбора If Not IsMissing(InitialPath) Then On Error Resume Next: ChDrive Left(InitialPath, 1) ChDir InitialPath ' выбираем стартовую папку End If res = Application.GetOpenFilename(MyFilter, , Title, "Открыть") ' вывод диалогового окна GetFileName = IIf(VarType(res) = vbBoolean, "", res) ' пустая строка при отказе от выбора End Function
[/vba]
Доброго времени суток!
Уважаемые пользователи форума, обращаюсь к вам за помощью в макросе, который формирует сводную таблицу, причем это надо сделать, находясь в другом файле. Например: Я работаю в файле "Проверка" в котором есть несколько листов, в которые нужно импортировать (сформировать) сводные таблицы. Т.е., сделать кнопку (макрос), нажав на которую, открылось окно для выбора файла с источником данных (файл - "ОСВ ГК_01-2016"), а сводную таблицу, занести на определенный лист (лист "ОСВ ГК"). Я уже думал, что если нет возможности импорта сводной таблице из того файла где находятся данные, так может есть возможность, сформировать тамлицу в том файле, на новый лист (к примеру, "Лист1"), а потом с этого листа копировать?
Сводная таблица - 2075185.xlsx(21Kb) · Источник данных - 01-2016.xlsx(44Kb)
Есть код, который открывает файл, но как его применить в моем случаи, я не знаю.
[vba]
Код
Function GetFileName(Optional ByVal Title As String = "Выберите файл для обработки", _ Optional ByVal InitialPath, _ Optional ByVal MyFilter As String = "Книги Excel (*.xls*),") As String ' функция выводит диалоговое окно выбора папки с заголовком Title, ' начиная обзор диска с папки InitialPath ' возвращает полный путь к выбранной папке, или пустую строку в случае отказа от выбора If Not IsMissing(InitialPath) Then On Error Resume Next: ChDrive Left(InitialPath, 1) ChDir InitialPath ' выбираем стартовую папку End If res = Application.GetOpenFilename(MyFilter, , Title, "Открыть") ' вывод диалогового окна GetFileName = IIf(VarType(res) = vbBoolean, "", res) ' пустая строка при отказе от выбора End Function
Здравствуйте. Подскажу простой вариант. Копируете данные в книгу или на один лист (собрать с нескольких книг или листов--поиском найти макрос ). Собрать данные на лист, можно найти. Удалить пустые строки -тоже. На базе полученного строите сводную таблицу. Сформировать сводную--можете сами включив макрорекордер. Извиняюсь, но файлы не смотрел. Имхо. Вопрос подразумевает-- сделайте за меня.
Здравствуйте. Подскажу простой вариант. Копируете данные в книгу или на один лист (собрать с нескольких книг или листов--поиском найти макрос ). Собрать данные на лист, можно найти. Удалить пустые строки -тоже. На базе полученного строите сводную таблицу. Сформировать сводную--можете сами включив макрорекордер. Извиняюсь, но файлы не смотрел. Имхо. Вопрос подразумевает-- сделайте за меня.gling
Копируете данные в книгу или на один лист (собрать с нескольких книг или листов--поиском найти макрос ).
Вы правы, в том случаи, если данные неизменны. Дело в том, что в процессе работы, данные постоянно меняются, и каждый раз копировать и строить сводную таблицу, занимает некоторое время. Вот в голову и пришла мысли, что "неплохо бы было, путем нажатия на кнопку, выбираешь файл с данными из которого хочу сформировать сводную таблицу"...
Копируете данные в книгу или на один лист (собрать с нескольких книг или листов--поиском найти макрос ).
Вы правы, в том случаи, если данные неизменны. Дело в том, что в процессе работы, данные постоянно меняются, и каждый раз копировать и строить сводную таблицу, занимает некоторое время. Вот в голову и пришла мысли, что "неплохо бы было, путем нажатия на кнопку, выбираешь файл с данными из которого хочу сформировать сводную таблицу"...amadeus017
Нашел макрос, который переносит данные в новый лист. А если создается новый лист, то [i]каждый раз вручную создавать сводную таблицу[/i]... Это не то, что я хочу. Я хочу, чтобы на имеющимся листе, где уже есть сводная таблица, обновлялись данные по средствам макроса (нажал кнопку, выбрал файл с источником данных для сводной таблицы, сформировал сводную таблицу и полученный результат, перенес в свой файл, из которого запущен макрос, заменив старые данные сводной таблицы, на новые).
Нашел макрос, который переносит данные в новый лист. А если создается новый лист, то [i]каждый раз вручную создавать сводную таблицу[/i]... Это не то, что я хочу. Я хочу, чтобы на имеющимся листе, где уже есть сводная таблица, обновлялись данные по средствам макроса (нажал кнопку, выбрал файл с источником данных для сводной таблицы, сформировал сводную таблицу и полученный результат, перенес в свой файл, из которого запущен макрос, заменив старые данные сводной таблицы, на новые).amadeus017
Сообщение отредактировал amadeus017 - Суббота, 20.02.2016, 20:08
Сформировать сводную--можете сами включив макрорекордер.
Если не хотите создавать каждый раз сводную, можно создать лист "Для сводной", в него после сбора данных со всех нужных книг копируйте собранные данные. После чего придется только обновить сводную таблицу, но и это можно включить в макрос. Создайте лист "Для сводной" и включите в конец кода эти строки, думаю должно получиться. [vba]
Сформировать сводную--можете сами включив макрорекордер.
Если не хотите создавать каждый раз сводную, можно создать лист "Для сводной", в него после сбора данных со всех нужных книг копируйте собранные данные. После чего придется только обновить сводную таблицу, но и это можно включить в макрос. Создайте лист "Для сводной" и включите в конец кода эти строки, думаю должно получиться. [vba]