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

Вход

Регистрация

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

 

= Мир MS Excel/Сводная таблица, источник данных в другом файле - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сводная таблица, источник данных в другом файле (Макросы/Sub)
Сводная таблица, источник данных в другом файле
amadeus017 Дата: Суббота, 20.02.2016, 06:44 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Доброго времени суток!

Уважаемые пользователи форума, обращаюсь к вам за помощью в макросе, который формирует сводную таблицу, причем это надо сделать, находясь в другом файле.
Например:
Я работаю в файле "Проверка" в котором есть несколько листов, в которые нужно импортировать (сформировать) сводные таблицы. Т.е., сделать кнопку (макрос), нажав на которую, открылось окно для выбора файла с источником данных (файл - "ОСВ ГК_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]
К сообщению приложен файл: 2075185.xlsx(21Kb) · __01-2016.xlsx(44Kb)


Сообщение отредактировал amadeus017 - Суббота, 20.02.2016, 07:45
 
Ответить
СообщениеДоброго времени суток!

Уважаемые пользователи форума, обращаюсь к вам за помощью в макросе, который формирует сводную таблицу, причем это надо сделать, находясь в другом файле.
Например:
Я работаю в файле "Проверка" в котором есть несколько листов, в которые нужно импортировать (сформировать) сводные таблицы. Т.е., сделать кнопку (макрос), нажав на которую, открылось окно для выбора файла с источником данных (файл - "ОСВ ГК_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]

Автор - amadeus017
Дата добавления - 20.02.2016 в 06:44
gling Дата: Суббота, 20.02.2016, 17:36 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1352
Репутация: 326 ±
Замечаний: 0% ±

2010
Здравствуйте.
Подскажу простой вариант.
Копируете данные в книгу или на один лист (собрать с нескольких книг или листов--поиском найти макрос ).
Собрать данные на лист, можно найти.
Удалить пустые строки -тоже.
На базе полученного строите сводную таблицу.
Сформировать сводную--можете сами включив макрорекордер.
Извиняюсь, но файлы не смотрел.
Имхо.
Вопрос подразумевает-- сделайте за меня.
 
Ответить
СообщениеЗдравствуйте.
Подскажу простой вариант.
Копируете данные в книгу или на один лист (собрать с нескольких книг или листов--поиском найти макрос ).
Собрать данные на лист, можно найти.
Удалить пустые строки -тоже.
На базе полученного строите сводную таблицу.
Сформировать сводную--можете сами включив макрорекордер.
Извиняюсь, но файлы не смотрел.
Имхо.
Вопрос подразумевает-- сделайте за меня.

Автор - gling
Дата добавления - 20.02.2016 в 17:36
amadeus017 Дата: Суббота, 20.02.2016, 18:55 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Копируете данные в книгу или на один лист (собрать с нескольких книг или листов--поиском найти макрос ).


Вы правы, в том случаи, если данные неизменны. Дело в том, что в процессе работы, данные постоянно меняются, и каждый раз копировать и строить сводную таблицу, занимает некоторое время. Вот в голову и пришла мысли, что "неплохо бы было, путем нажатия на кнопку, выбираешь файл с данными из которого хочу сформировать сводную таблицу"...
 
Ответить
Сообщение
Копируете данные в книгу или на один лист (собрать с нескольких книг или листов--поиском найти макрос ).


Вы правы, в том случаи, если данные неизменны. Дело в том, что в процессе работы, данные постоянно меняются, и каждый раз копировать и строить сводную таблицу, занимает некоторое время. Вот в голову и пришла мысли, что "неплохо бы было, путем нажатия на кнопку, выбираешь файл с данными из которого хочу сформировать сводную таблицу"...

Автор - amadeus017
Дата добавления - 20.02.2016 в 18:55
RAN Дата: Суббота, 20.02.2016, 19:29 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4277
Репутация: 829 ±
Замечаний: 0% ±

2010
Вы правы, в том случаи, если данные неизменны.

И, если данные динамически изменяются, тоже. yes


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
Вы правы, в том случаи, если данные неизменны.

И, если данные динамически изменяются, тоже. yes

Автор - RAN
Дата добавления - 20.02.2016 в 19:29
amadeus017 Дата: Суббота, 20.02.2016, 20:07 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
И, если данные динамически изменяются, тоже. yes


http://www.excel-vba.ru/chto-um....li-knig

Нашел макрос, который переносит данные в новый лист. А если создается новый лист, то [i]каждый раз вручную создавать сводную таблицу[/i]... Это не то, что я хочу. Я хочу, чтобы на имеющимся листе, где уже есть сводная таблица, обновлялись данные по средствам макроса (нажал кнопку, выбрал файл с источником данных для сводной таблицы, сформировал сводную таблицу и полученный результат, перенес в свой файл, из которого запущен макрос, заменив старые данные сводной таблицы, на новые).


Сообщение отредактировал amadeus017 - Суббота, 20.02.2016, 20:08
 
Ответить
Сообщение
И, если данные динамически изменяются, тоже. yes


http://www.excel-vba.ru/chto-um....li-knig

Нашел макрос, который переносит данные в новый лист. А если создается новый лист, то [i]каждый раз вручную создавать сводную таблицу[/i]... Это не то, что я хочу. Я хочу, чтобы на имеющимся листе, где уже есть сводная таблица, обновлялись данные по средствам макроса (нажал кнопку, выбрал файл с источником данных для сводной таблицы, сформировал сводную таблицу и полученный результат, перенес в свой файл, из которого запущен макрос, заменив старые данные сводной таблицы, на новые).

Автор - amadeus017
Дата добавления - 20.02.2016 в 20:07
gling Дата: Воскресенье, 21.02.2016, 10:57 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1352
Репутация: 326 ±
Замечаний: 0% ±

2010
Сформировать сводную--можете сами включив макрорекордер.
Если не хотите создавать каждый раз сводную, можно создать лист "Для сводной", в него после сбора данных со всех нужных книг копируйте собранные данные. После чего придется только обновить сводную таблицу, но и это можно включить в макрос.
Создайте лист "Для сводной" и включите в конец кода эти строки, думаю должно получиться.
[vba]
Код
Sheets("Для сводной").Range("A1:E1000").ClearContents
Sheets(Sheets.Count).Range("A1:E1000").Copy Sheets("Для сводной").Range("A1")
[/vba]


Сообщение отредактировал gling - Воскресенье, 21.02.2016, 10:59
 
Ответить
Сообщение
Сформировать сводную--можете сами включив макрорекордер.
Если не хотите создавать каждый раз сводную, можно создать лист "Для сводной", в него после сбора данных со всех нужных книг копируйте собранные данные. После чего придется только обновить сводную таблицу, но и это можно включить в макрос.
Создайте лист "Для сводной" и включите в конец кода эти строки, думаю должно получиться.
[vba]
Код
Sheets("Для сводной").Range("A1:E1000").ClearContents
Sheets(Sheets.Count).Range("A1:E1000").Copy Sheets("Для сводной").Range("A1")
[/vba]

Автор - gling
Дата добавления - 21.02.2016 в 10:57
amadeus017 Дата: Воскресенье, 21.02.2016, 17:19 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Вы наверняка правы, что это можно сделать таким образом. Но я, больше по бухгалтерии, чем в программировании %)
Надо подумать, как это сделать :)
 
Ответить
СообщениеВы наверняка правы, что это можно сделать таким образом. Но я, больше по бухгалтерии, чем в программировании %)
Надо подумать, как это сделать :)

Автор - amadeus017
Дата добавления - 21.02.2016 в 17:19
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сводная таблица, источник данных в другом файле (Макросы/Sub)
Страница 1 из 11
Поиск:

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