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

Вход

Регистрация

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

 

= Мир MS Excel/Извлечение данных из одной файла-таблицы и вставка в др. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Извлечение данных из одной файла-таблицы и вставка в др.
NikolayZver Дата: Среда, 06.01.2016, 16:25 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Работаю мерчиком и имеется несколько разношёрстных таблиц, где надо вводить актуальные цены.
Я создал свою базу с артикулами и ценами, которую я распечатываю и бегаю с ней. В этой базе указана вся продукция, а работодателю нужна оформленная по их правилам таблица (даже несколько файлов, а именно для разных магазинов), и лишь с некоторыми позициями.

В прикреплённом примере демонстрируется как это сейчас. Хотелось бы заполнять только свой лист с базой, а через скрипт копировать из него ячейки с актуальными ценами для нужных позиций в отчётности для работодателя.

Пытался активно гуглить, но везде примеры с диапазонами, а мне прям в жёсткую надо задать ячейки. В прикреплённых файлах становится понятно почему так.
Ещё надо учесть, что по мере необходимости вносятся новые товары, да и таблица для компании может поменяться в одночасье. В этой связи и хотелось бы именно жёсткую привязку, мне не лень будет перелопатить адреса, благо делается это один раз.

С VBA познакомился только сегодня, пытался отредактировать найденный на просторах сети скрипт-пример, но ничего не получилось :-( Надеюсь на вашу помощь.

Цитата
Sub Импорт()
'Открываем файл с которого нужно скопировать данные
Workbooks.Open Filename:="D:\Данные.xlsx"

'Скопировать нужный диапазон в открывшейся книге на листе 1
Workbooks("Данные.xlsx").Worksheets("Лист1").Range("E14").Copy
Workbooks("Данные.xlsx").Worksheets("Лист1").Range("E9").Copy
Workbooks("Данные.xlsx").Worksheets("Лист1").Range("E10").Copy
'Активируем нужную нам книгу
Workbooks("Книга1.xlsm").Activate

'Выделяем и вставляем скопированные данные в ячейку
ActiveWorkbook.Worksheets("Лист1").Range("D1").Select
ActiveWorkbook.Worksheets("Лист1").Range("D2").Select
ActiveWorkbook.Worksheets("Лист1").Range("D3").Select
ActiveSheet.Paste

'Закрываем книгу откуда мы скопировали данные
Workbooks("Данные.xlsx").Close
End Sub


Да, и фаил базы я подключаю к программе для распечатки штрихов на бумагу (так быстрее всего чекать цены на сканерах в магазинах), а она поддерживает только *.xls. Другими словами в нём самом скрипт не сохранить.

Пример моей базы и таблиц работодателя приложил к сообщению
К сообщению приложен файл: My_Base.xls (25.5 Kb) · __1.xls (41.5 Kb)


Сообщение отредактировал NikolayZver - Среда, 06.01.2016, 18:55
 
Ответить
СообщениеРаботаю мерчиком и имеется несколько разношёрстных таблиц, где надо вводить актуальные цены.
Я создал свою базу с артикулами и ценами, которую я распечатываю и бегаю с ней. В этой базе указана вся продукция, а работодателю нужна оформленная по их правилам таблица (даже несколько файлов, а именно для разных магазинов), и лишь с некоторыми позициями.

В прикреплённом примере демонстрируется как это сейчас. Хотелось бы заполнять только свой лист с базой, а через скрипт копировать из него ячейки с актуальными ценами для нужных позиций в отчётности для работодателя.

Пытался активно гуглить, но везде примеры с диапазонами, а мне прям в жёсткую надо задать ячейки. В прикреплённых файлах становится понятно почему так.
Ещё надо учесть, что по мере необходимости вносятся новые товары, да и таблица для компании может поменяться в одночасье. В этой связи и хотелось бы именно жёсткую привязку, мне не лень будет перелопатить адреса, благо делается это один раз.

С VBA познакомился только сегодня, пытался отредактировать найденный на просторах сети скрипт-пример, но ничего не получилось :-( Надеюсь на вашу помощь.

Цитата
Sub Импорт()
'Открываем файл с которого нужно скопировать данные
Workbooks.Open Filename:="D:\Данные.xlsx"

'Скопировать нужный диапазон в открывшейся книге на листе 1
Workbooks("Данные.xlsx").Worksheets("Лист1").Range("E14").Copy
Workbooks("Данные.xlsx").Worksheets("Лист1").Range("E9").Copy
Workbooks("Данные.xlsx").Worksheets("Лист1").Range("E10").Copy
'Активируем нужную нам книгу
Workbooks("Книга1.xlsm").Activate

'Выделяем и вставляем скопированные данные в ячейку
ActiveWorkbook.Worksheets("Лист1").Range("D1").Select
ActiveWorkbook.Worksheets("Лист1").Range("D2").Select
ActiveWorkbook.Worksheets("Лист1").Range("D3").Select
ActiveSheet.Paste

'Закрываем книгу откуда мы скопировали данные
Workbooks("Данные.xlsx").Close
End Sub


Да, и фаил базы я подключаю к программе для распечатки штрихов на бумагу (так быстрее всего чекать цены на сканерах в магазинах), а она поддерживает только *.xls. Другими словами в нём самом скрипт не сохранить.

Пример моей базы и таблиц работодателя приложил к сообщению

Автор - NikolayZver
Дата добавления - 06.01.2016 в 16:25
NikolayZver Дата: Среда, 06.01.2016, 18:56 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
И вот ещё второй вариант отчёта для работодателя. Я его пересохранил, чтобы уменьшить размер, он был в обычном формате xlsx.
К сообщению приложен файл: __2.xlsb (96.0 Kb)


Сообщение отредактировал NikolayZver - Среда, 06.01.2016, 19:00
 
Ответить
СообщениеИ вот ещё второй вариант отчёта для работодателя. Я его пересохранил, чтобы уменьшить размер, он был в обычном формате xlsx.

Автор - NikolayZver
Дата добавления - 06.01.2016 в 18:56
  • Страница 1 из 1
  • 1
Поиск:

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