Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2017, 09:04   #1
amadeus017
Форумчанин
 
Регистрация: 28.05.2014
Сообщений: 158
По умолчанию Копирование данных из разных книг в одну с указанием файла

Добрый день, уважаемые пользователи форума!

Как по средствам макроса, загрузить данные в одну книгу из нескольких книг выбирая непосредственно файл загрузки.
Например:
Есть файл "Книга1", в котором на листе "Реестр" в графе "B", есть перечень кассовых аппаратов в разных точках города. Так же в файле "Книга1", есть листы с номерами кассовых аппаратов (листы названы по графе "B" из листа "Реестр", т.е. № аппарата).
Как сделать так, чтобы нажав кнопку (или запустить макрос "Alt+F8"), выдавалось бы окно для выбора другого файла, допустим "Книга2", в котором отчет за определенный день (ячейка R14), и данные по номерам кассовых аппаратов, разносились бы по листам построчно за этот день (графы объединенные "C" и "D", начиная с 29-й строки). Т.е., открываем файл за определенный день (в открывшимся файле, дата из ячейки R14, нужно перенести в объединенную графу "CD", начиная с новой строки, не затирая предыдущие строки), переносим данные по листам (название листов совпадают со списком из листа "Реестр" графа "B"), сохраняем при необходимости и переходим к следующему файлу... Нижнюю часть таблицы, не нужно заполнять. Суть таблицы, это посмотреть историю по кассовому аппарату за определенный (любой) период, а не бегать между файлами, искать этот аппарат в другом файле и смотреть что с ним было в тот или иной день.
Вложения
Тип файла: xlsx Книга1.xlsx (106.8 Кб, 12 просмотров)
Тип файла: xlsx Книга2.xlsx (44.1 Кб, 19 просмотров)

Последний раз редактировалось amadeus017; 20.04.2017 в 12:49.
amadeus017 вне форума Ответить с цитированием
Старый 20.04.2017, 10:54   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

А что делать, если в книге 2 встретился номер аппарата, которого нет на листе "Реестр" в книге 1 (а также нет и соответствующего листа)?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 20.04.2017, 12:04   #3
amadeus017
Форумчанин
 
Регистрация: 28.05.2014
Сообщений: 158
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
А что делать, если в книге 2 встретился номер аппарата, которого нет на листе "Реестр" в книге 1 (а также нет и соответствующего листа)?
Прошу прощение, верное замечание которое я забыл написать, что нужно копировать именно те строки, номера которые указаны на листе "Реестр", другие не копировать (для этого и привел в примере в файле "Книга2", другие номера, которых нет в списке на листе "Реестр" в графе "B").

Последний раз редактировалось amadeus017; 20.04.2017 в 13:12.
amadeus017 вне форума Ответить с цитированием
Старый 21.04.2017, 06:03   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите пример во вложении.
Откройте файл, нажмите кнопку "Импорт" и укажите файл-источник.
Если встречается номер, который есть в списке реестра, а листа с таким именем нет (как в Вашем примере), то по окончании работы макрос уведомит об этом.
И еще: в книге, из которой берутся данные должен быть один лист (как сейчас). Иначе, в код макроса нужно добавить ссылку на требуемый лист.

Все ли так, как требовалось? Если что-то нужно изменить (добавить), либо что-то не понятно в работе макроса - пишите.
Вложения
Тип файла: rar Книга1.rar (100.4 Кб, 30 просмотров)
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 21.04.2017 в 08:00.
SAS888 вне форума Ответить с цитированием
Старый 24.04.2017, 07:21   #5
amadeus017
Форумчанин
 
Регистрация: 28.05.2014
Сообщений: 158
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
И еще: в книге, из которой берутся данные должен быть один лист (как сейчас). Иначе, в код макроса нужно добавить ссылку на требуемый лист.
Спасибо за макрос, все так как хотелось!
На счет листа, если их несколько, то при импорте (копировании), в импортируемом файле, должен быть активный лист именно тот, с которого происходит импорт.
amadeus017 вне форума Ответить с цитированием
Старый 24.04.2017, 07:45   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
Сообщение от amadeus017 Посмотреть сообщение
На счет листа, если их несколько, то при импорте (копировании), в импортируемом файле, должен быть активный лист именно тот, с которого происходит импорт.
Что значит "должен быть"? При выборе и открытии книги, активным будет тот лист, который был активным при последнем сохранении этой книги. Макрос об этом не знает. Поэтому, нужно либо знать имя листа, с которого требуется импортировать данные, либо его порядковый номер в книге.
Другой вариант - это искать по всем листам какие-то уникальные (которые есть только в этом листе) значения (заголовки в определенных ячейках и т. п.), и таким способом определять требуемый лист. Если есть такой критерий - укажите, реализуем.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 24.04.2017, 11:06   #7
amadeus017
Форумчанин
 
Регистрация: 28.05.2014
Сообщений: 158
По умолчанию

Я открыл отчет, в котором несколько листов, и пересохранил файл, будучи в том листе, от куда необходимо взять данный (в пустой ячейке "вбил" цифру, удалил её и сохранил находясь на нужном листе). В этом случаи, все работает идеально
amadeus017 вне форума Ответить с цитированием
Старый 17.11.2017, 09:28   #8
illusion51
 
Регистрация: 16.11.2017
Сообщений: 6
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Посмотрите пример во вложении.
Откройте файл, нажмите кнопку "Импорт" и укажите файл-источник.
Если встречается номер, который есть в списке реестра, а листа с таким именем нет (как в Вашем примере), то по окончании работы макрос уведомит об этом.
И еще: в книге, из которой берутся данные должен быть один лист (как сейчас). Иначе, в код макроса нужно добавить ссылку на требуемый лист.

Все ли так, как требовалось? Если что-то нужно изменить (добавить), либо что-то не понятно в работе макроса - пишите.
как редактировать макрос? при нажатии ALT +F8 - там пусто (нет макросов) хотелось бы отредактировать ячейки
illusion51 вне форума Ответить с цитированием
Старый 17.11.2017, 09:35   #9
illusion51
 
Регистрация: 16.11.2017
Сообщений: 6
По умолчанию

помогите пожалуйста!!!
есть более 100 заказ нарядов отдельными файлами. Нужно сделать из них отдельную таблицу

отредактировать макрос так, чтобы копировал ячейки из файлов, которые лежат в папке
ФИО владельца (ячейка L12) | номер телефона (K17) | и автомобиль (ячейки M8 и G8)

не могу почему то редактировать в Экселе 2010
Вложения
Тип файла: xlsx 1956 митсубиси паджеро спорт — копия.xlsx (21.8 Кб, 13 просмотров)
Тип файла: xls Main.xls (36.0 Кб, 11 просмотров)

Последний раз редактировалось illusion51; 17.11.2017 в 09:41.
illusion51 вне форума Ответить с цитированием
Старый 17.11.2017, 09:39   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от illusion51 Посмотреть сообщение
как редактировать макрос? при нажатии ALT +F8
Alt-F11 (откроется редактор Visual Basic for Application
там выбирайте слева в дереве объектов тот, в котором будет лежать макрос.
двойной щелчок - можете вставлять текст макроса.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование данных из множества книг XL в одну Z0RGE Microsoft Office Excel 6 31.03.2015 15:55
копирование данных из разных книгEXCEL в одну elli_93 Microsoft Office Excel 1 01.05.2012 20:39
Объединение данных из разных книг в одну книгу. judicator Microsoft Office Excel 4 18.01.2012 14:44
сбор данных с разных книг в одну Ledy1987 Microsoft Office Excel 26 20.04.2011 21:33
Сбор даных с разных книг в одну Pao Microsoft Office Excel 28 12.07.2010 07:27