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

Вход

Регистрация

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

 

= Мир MS Excel/Как связать 2 книги в разных файлах в Excel - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Как связать 2 книги в разных файлах в Excel
dennyv8 Дата: Четверг, 28.11.2013, 22:04 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Всем привет.
Ребят помогите плиз, всю голову уже сломал и инет перерыл, ничего не получается. Может это не реально.
Есть таблица с прайс-листом. Это будет основной прайс который лежит по сети в папке.
И есть файл Excel который должен содержать такую же таблицу 1:1, и все данные в этой таблице должны ссылаться на основной прайс в другом файле.
Задача - как сделать чтобы таблица из основного прайса дублировалась в другом файле и при внесении дополнений в основном прайсе (новые товары, новые строки с товарами),- в другом файле обновлялась таблица с новыми данными и новыми строками. Вроде бы все.
Всем заранее спасибо.
 
Ответить
СообщениеВсем привет.
Ребят помогите плиз, всю голову уже сломал и инет перерыл, ничего не получается. Может это не реально.
Есть таблица с прайс-листом. Это будет основной прайс который лежит по сети в папке.
И есть файл Excel который должен содержать такую же таблицу 1:1, и все данные в этой таблице должны ссылаться на основной прайс в другом файле.
Задача - как сделать чтобы таблица из основного прайса дублировалась в другом файле и при внесении дополнений в основном прайсе (новые товары, новые строки с товарами),- в другом файле обновлялась таблица с новыми данными и новыми строками. Вроде бы все.
Всем заранее спасибо.

Автор - dennyv8
Дата добавления - 28.11.2013 в 22:04
Serge_007 Дата: Четверг, 28.11.2013, 22:19 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Код
=другой_файл


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Код
=другой_файл

Автор - Serge_007
Дата добавления - 28.11.2013 в 22:19
dennyv8 Дата: Четверг, 28.11.2013, 23:35 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
А отлично, с данными разобрался спасибо, вроде как отображаются в другом файле. Но если вставляю строчку новую в прайсе, то в другом файле ничего не происходит, а это по идее самый важный момент в моем деле. Т.е. если по сети добавляем строки в файл, то другие файлы связанные с этой таблицей должны добавить такие же данные. Может как массивом, например диапазон таблицы выделить и вставить в другой файл, причем любое добавление, изменение, удаление строк в основном прайсе влечет за собой те же действия с таблицей в другом файле автоматически.


Сообщение отредактировал dennyv8 - Четверг, 28.11.2013, 23:36
 
Ответить
СообщениеА отлично, с данными разобрался спасибо, вроде как отображаются в другом файле. Но если вставляю строчку новую в прайсе, то в другом файле ничего не происходит, а это по идее самый важный момент в моем деле. Т.е. если по сети добавляем строки в файл, то другие файлы связанные с этой таблицей должны добавить такие же данные. Может как массивом, например диапазон таблицы выделить и вставить в другой файл, причем любое добавление, изменение, удаление строк в основном прайсе влечет за собой те же действия с таблицей в другом файле автоматически.

Автор - dennyv8
Дата добавления - 28.11.2013 в 23:35
AndreTM Дата: Пятница, 29.11.2013, 00:03 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
dennyv8, Вы просто определитесь сначала, что первично - модификация основного файла должна вызывать модификацию зависимых (и тогда основной файл должен "знать" расположение зависимых файлов), или наоборот, у "зависимых" файлов должно время от времени (или когда необходимо) возникать желание обновить информацию из основного файла... И уже исходя из этого, можно и строить "модель взаимоотношений". А то вы озаботились только тем, что плодите дубли - а затем сразу же начинаете разбираться с атакой клонов. Оккам был прав... :D


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщениеdennyv8, Вы просто определитесь сначала, что первично - модификация основного файла должна вызывать модификацию зависимых (и тогда основной файл должен "знать" расположение зависимых файлов), или наоборот, у "зависимых" файлов должно время от времени (или когда необходимо) возникать желание обновить информацию из основного файла... И уже исходя из этого, можно и строить "модель взаимоотношений". А то вы озаботились только тем, что плодите дубли - а затем сразу же начинаете разбираться с атакой клонов. Оккам был прав... :D

Автор - AndreTM
Дата добавления - 29.11.2013 в 00:03
dennyv8 Дата: Пятница, 29.11.2013, 00:18 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
AndreTM, Вы правы, мне нужно это : < у "зависимых" файлов должно время от времени (или когда необходимо) возникать желание обновить информацию из основного файла>, буду премного благодарен если поможете.
 
Ответить
СообщениеAndreTM, Вы правы, мне нужно это : < у "зависимых" файлов должно время от времени (или когда необходимо) возникать желание обновить информацию из основного файла>, буду премного благодарен если поможете.

Автор - dennyv8
Дата добавления - 29.11.2013 в 00:18
AndreTM Дата: Пятница, 29.11.2013, 00:34 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
мне нужно это : < у "зависимых" файлов должно время от времени (или когда необходимо) возникать желание обновить информацию из основного файла>
Ну так и действуйте тогда с точки зрения "зависимого" файла. То есть "основной прайс", "таблица данных", "файл где-то на сети" - это всё наименование для источника данных. Вот и организуйте просто связь с источником в нужном вам виде. Только сначала определитесь с актуальностью данных! (т.е. насколько должен быть "свеж исходник"). Ведь "прайс" - понятие относительное, он может обновляться и ежеминутно... Но я так подозреваю, что у вас проблема намного меньше и проще - прайс обновляется раз-два в день, а "на местах" - достаточно проверить, было ли изменение, и, если надо - получить копию. Это я всё к тому веду, что не стОит напрягать сеть перекачкой полного списка по каждому чиху "оформителя счёта".
Впрочем, всё это досужие рассуждения (несущие, конечно же, некий глубинный смысл :) ). Без конкретного описания техпроцесса и примеров реальных данных (а раз сеть - то и их относительного расположения) - мы так и будем просто продолжать мило беседовать...
И да, тему, наверное, надо переносить в Sub...


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Пятница, 29.11.2013, 00:38
 
Ответить
Сообщение
мне нужно это : < у "зависимых" файлов должно время от времени (или когда необходимо) возникать желание обновить информацию из основного файла>
Ну так и действуйте тогда с точки зрения "зависимого" файла. То есть "основной прайс", "таблица данных", "файл где-то на сети" - это всё наименование для источника данных. Вот и организуйте просто связь с источником в нужном вам виде. Только сначала определитесь с актуальностью данных! (т.е. насколько должен быть "свеж исходник"). Ведь "прайс" - понятие относительное, он может обновляться и ежеминутно... Но я так подозреваю, что у вас проблема намного меньше и проще - прайс обновляется раз-два в день, а "на местах" - достаточно проверить, было ли изменение, и, если надо - получить копию. Это я всё к тому веду, что не стОит напрягать сеть перекачкой полного списка по каждому чиху "оформителя счёта".
Впрочем, всё это досужие рассуждения (несущие, конечно же, некий глубинный смысл :) ). Без конкретного описания техпроцесса и примеров реальных данных (а раз сеть - то и их относительного расположения) - мы так и будем просто продолжать мило беседовать...
И да, тему, наверное, надо переносить в Sub...

Автор - AndreTM
Дата добавления - 29.11.2013 в 00:34
Hugo Дата: Пятница, 29.11.2013, 01:09 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Такой вариант - запускаете "зависимый файл" - там по событию открытия срабатывает макрос, который делает временную копию основного файла, открывает её, сам закрывается.
Ну или просто пишется небольшой скрипт vbs.
Или без всяких скриптов - делаете копию основного, открываете. :)
Если делать макросом - то можно сперва проверить время изменения временного файла и основного - если они одинаковые, то основной можно не трогать, открывать сразу временный.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеТакой вариант - запускаете "зависимый файл" - там по событию открытия срабатывает макрос, который делает временную копию основного файла, открывает её, сам закрывается.
Ну или просто пишется небольшой скрипт vbs.
Или без всяких скриптов - делаете копию основного, открываете. :)
Если делать макросом - то можно сперва проверить время изменения временного файла и основного - если они одинаковые, то основной можно не трогать, открывать сразу временный.

Автор - Hugo
Дата добавления - 29.11.2013 в 01:09
AndreTM Дата: Пятница, 29.11.2013, 01:17 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
Игорь, я же намекнул - смысл именно в минимизации прокачек данных по сети (как я понял ТС), ибо (КМК) - тормозят всякие "связанные списки" :). И здесь весь цимес как раз в использовании "данных по запросу" (то есть всё необходимое берётся из локальной копии источника), с проверкой его изменения всего лишь запросом данных (при открытии/при нажатии кнопки) из одной ячейки исходника - "дата-время последнего обновления прайса"...
При этом никакого дублирования данных нет: локальные копии - это синхронизируемые по определённому принципу исходные данные.


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Пятница, 29.11.2013, 01:21
 
Ответить
СообщениеИгорь, я же намекнул - смысл именно в минимизации прокачек данных по сети (как я понял ТС), ибо (КМК) - тормозят всякие "связанные списки" :). И здесь весь цимес как раз в использовании "данных по запросу" (то есть всё необходимое берётся из локальной копии источника), с проверкой его изменения всего лишь запросом данных (при открытии/при нажатии кнопки) из одной ячейки исходника - "дата-время последнего обновления прайса"...
При этом никакого дублирования данных нет: локальные копии - это синхронизируемые по определённому принципу исходные данные.

Автор - AndreTM
Дата добавления - 29.11.2013 в 01:17
dennyv8 Дата: Пятница, 29.11.2013, 01:24 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Или без всяких скриптов - делаете копию основного, открываете.

Да это проще всего. Только если в основной прайс внести изменения - эти изменения должны добавиться в открытый второй файл, который берет данные из первого.
Чет я уже устал. По Excel не специализируюсь, не мое. Но хотелось бы сделать этот момент, если все таки найду в сети раньше решение - поделюсь. С данными решили, они обновляются автоматом, а вот добавление строки никак.
Да вот нашел тему на этом же форуме что мне надо - но там так и не решился вопрос.
http://www.excelworld.ru/forum/2-2480-1


Сообщение отредактировал dennyv8 - Пятница, 29.11.2013, 01:30
 
Ответить
Сообщение
Или без всяких скриптов - делаете копию основного, открываете.

Да это проще всего. Только если в основной прайс внести изменения - эти изменения должны добавиться в открытый второй файл, который берет данные из первого.
Чет я уже устал. По Excel не специализируюсь, не мое. Но хотелось бы сделать этот момент, если все таки найду в сети раньше решение - поделюсь. С данными решили, они обновляются автоматом, а вот добавление строки никак.
Да вот нашел тему на этом же форуме что мне надо - но там так и не решился вопрос.
http://www.excelworld.ru/forum/2-2480-1

Автор - dennyv8
Дата добавления - 29.11.2013 в 01:24
AndreTM Дата: Пятница, 29.11.2013, 01:36 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
С данными решили, они обновляются автоматом, а вот добавление строки никак.
То есть вы даже не читаете нашего полуночного разговора... пичалька :D

Вы же не рассказали, как вы "с данными решили". Подозреваю, что копированием предыдущего диапазона в нужное место.
Я (в своё время, лет 15 назад :) ) вашу задачу решал легко и просто "одним движением" (посоветованным выше Сергеем): в файле приёмнике пишем формулами "с запасом" кучу внешних ссылок на файл-источник. То есть получаем в листе-приёмнике копию листа-источника, а при открытии файла - запрос на обновление ссылок. А уже в файле-приёмнике все расчеты и формулы строим на основании локальной копии. Достаточно помнить один момент - внешние ссылки в приёмнике должны быть абсолютными...
Всё это я делал, пока не поумнел. Вернее, умным я был и до этого, но не в Офисе :)


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Пятница, 29.11.2013, 01:37
 
Ответить
Сообщение
С данными решили, они обновляются автоматом, а вот добавление строки никак.
То есть вы даже не читаете нашего полуночного разговора... пичалька :D

Вы же не рассказали, как вы "с данными решили". Подозреваю, что копированием предыдущего диапазона в нужное место.
Я (в своё время, лет 15 назад :) ) вашу задачу решал легко и просто "одним движением" (посоветованным выше Сергеем): в файле приёмнике пишем формулами "с запасом" кучу внешних ссылок на файл-источник. То есть получаем в листе-приёмнике копию листа-источника, а при открытии файла - запрос на обновление ссылок. А уже в файле-приёмнике все расчеты и формулы строим на основании локальной копии. Достаточно помнить один момент - внешние ссылки в приёмнике должны быть абсолютными...
Всё это я делал, пока не поумнел. Вернее, умным я был и до этого, но не в Офисе :)

Автор - AndreTM
Дата добавления - 29.11.2013 в 01:36
dennyv8 Дата: Пятница, 29.11.2013, 01:58 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Вы же не рассказали, как вы "с данными решили". Подозреваю, что копированием предыдущего диапазона в нужное место

С данными в начале темы помогли, использую так =[Прайс.xlsx]Цена1!H23, все норм...Осталась засада с строчками, и видимо самая сложная.
 
Ответить
Сообщение
Вы же не рассказали, как вы "с данными решили". Подозреваю, что копированием предыдущего диапазона в нужное место

С данными в начале темы помогли, использую так =[Прайс.xlsx]Цена1!H23, все норм...Осталась засада с строчками, и видимо самая сложная.

Автор - dennyv8
Дата добавления - 29.11.2013 в 01:58
AndreTM Дата: Пятница, 29.11.2013, 02:10 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 501 ±
Замечаний: 0% ±

2003 & 2010
использую так =[Прайс.xlsx]Цена1!H23, все норм
Достаточно помнить один момент - внешние ссылки в приёмнике должны быть абсолютными...


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение
использую так =[Прайс.xlsx]Цена1!H23, все норм
Достаточно помнить один момент - внешние ссылки в приёмнике должны быть абсолютными...

Автор - AndreTM
Дата добавления - 29.11.2013 в 02:10
Hugo Дата: Пятница, 29.11.2013, 22:35 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
"Только если в основной прайс внести изменения - эти изменения должны добавиться в открытый второй файл, который берет данные из первого. " - а вот это будет только тогда, когда основной файл сохранят, а в связанном обновят ссылки.
И в общем практически по сети будут переданы все данные файла.
И по сути макросом сделать копию файла и её открыть - надёжнее. Так не только данные получите, но и форматы-заливки.
А то может там кто-то что-то метит цветом, меняет формат ячеек (был текст, стала дата - с виду там ничего не поменялось, а в копии значительно) и т.д....


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
Сообщение"Только если в основной прайс внести изменения - эти изменения должны добавиться в открытый второй файл, который берет данные из первого. " - а вот это будет только тогда, когда основной файл сохранят, а в связанном обновят ссылки.
И в общем практически по сети будут переданы все данные файла.
И по сути макросом сделать копию файла и её открыть - надёжнее. Так не только данные получите, но и форматы-заливки.
А то может там кто-то что-то метит цветом, меняет формат ячеек (был текст, стала дата - с виду там ничего не поменялось, а в копии значительно) и т.д....

Автор - Hugo
Дата добавления - 29.11.2013 в 22:35
dennyv8 Дата: Пятница, 29.11.2013, 22:57 | Сообщение № 14
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Hugo как раз вы правильно сказали, видимо надо делать макрос чтобы переносил всю книгу и строки и т.д. Правильно я понял что макрос будет будет делать 100% копию оригинала файла? Где можно взять макрос или как его написать, в этом я точно не понимаю ((
 
Ответить
СообщениеHugo как раз вы правильно сказали, видимо надо делать макрос чтобы переносил всю книгу и строки и т.д. Правильно я понял что макрос будет будет делать 100% копию оригинала файла? Где можно взять макрос или как его написать, в этом я точно не понимаю ((

Автор - dennyv8
Дата добавления - 29.11.2013 в 22:57
dennyv8 Дата: Вторник, 03.12.2013, 18:16 | Сообщение № 15
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Нашел в сети код :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim book As Workbook
Dim cbook As Workbook
Dim nsheet As Worksheet
Dim prevsheet As Worksheet
Set cbook = ActiveWorkbook
Set prevsheet = ActiveSheet

Set book = Workbooks.Open("D:\Marabu FabriK\Excel Ìàêðîñû 2013\test2.xlsx")
Set nsheet = cbook.Sheets.Add(Type:=xlWorksheet)
nsheet.Name = "1"
book.Sheets("1").Range("A1:W10000").Copy Destination:=nsheet.Range("A1")
book.Close False

prevsheet.Activate

End Sub

В принципе он работает и копирует таблицу с ячейками и формулами (но без фильтра), только ширину столбцов не учитывает и все на экране перемешано, т.е. не 100% копия листа, которую я получаю копированием (copy-paste).
Может как можно сделать Сохранить как...
 
Ответить
СообщениеНашел в сети код :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim book As Workbook
Dim cbook As Workbook
Dim nsheet As Worksheet
Dim prevsheet As Worksheet
Set cbook = ActiveWorkbook
Set prevsheet = ActiveSheet

Set book = Workbooks.Open("D:\Marabu FabriK\Excel Ìàêðîñû 2013\test2.xlsx")
Set nsheet = cbook.Sheets.Add(Type:=xlWorksheet)
nsheet.Name = "1"
book.Sheets("1").Range("A1:W10000").Copy Destination:=nsheet.Range("A1")
book.Close False

prevsheet.Activate

End Sub

В принципе он работает и копирует таблицу с ячейками и формулами (но без фильтра), только ширину столбцов не учитывает и все на экране перемешано, т.е. не 100% копия листа, которую я получаю копированием (copy-paste).
Может как можно сделать Сохранить как...

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

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