Всем привет. Ребят помогите плиз, всю голову уже сломал и инет перерыл, ничего не получается. Может это не реально. Есть таблица с прайс-листом. Это будет основной прайс который лежит по сети в папке. И есть файл Excel который должен содержать такую же таблицу 1:1, и все данные в этой таблице должны ссылаться на основной прайс в другом файле. Задача - как сделать чтобы таблица из основного прайса дублировалась в другом файле и при внесении дополнений в основном прайсе (новые товары, новые строки с товарами),- в другом файле обновлялась таблица с новыми данными и новыми строками. Вроде бы все. Всем заранее спасибо.
Всем привет. Ребят помогите плиз, всю голову уже сломал и инет перерыл, ничего не получается. Может это не реально. Есть таблица с прайс-листом. Это будет основной прайс который лежит по сети в папке. И есть файл Excel который должен содержать такую же таблицу 1:1, и все данные в этой таблице должны ссылаться на основной прайс в другом файле. Задача - как сделать чтобы таблица из основного прайса дублировалась в другом файле и при внесении дополнений в основном прайсе (новые товары, новые строки с товарами),- в другом файле обновлялась таблица с новыми данными и новыми строками. Вроде бы все. Всем заранее спасибо.dennyv8
А отлично, с данными разобрался спасибо, вроде как отображаются в другом файле. Но если вставляю строчку новую в прайсе, то в другом файле ничего не происходит, а это по идее самый важный момент в моем деле. Т.е. если по сети добавляем строки в файл, то другие файлы связанные с этой таблицей должны добавить такие же данные. Может как массивом, например диапазон таблицы выделить и вставить в другой файл, причем любое добавление, изменение, удаление строк в основном прайсе влечет за собой те же действия с таблицей в другом файле автоматически.
А отлично, с данными разобрался спасибо, вроде как отображаются в другом файле. Но если вставляю строчку новую в прайсе, то в другом файле ничего не происходит, а это по идее самый важный момент в моем деле. Т.е. если по сети добавляем строки в файл, то другие файлы связанные с этой таблицей должны добавить такие же данные. Может как массивом, например диапазон таблицы выделить и вставить в другой файл, причем любое добавление, изменение, удаление строк в основном прайсе влечет за собой те же действия с таблицей в другом файле автоматически.dennyv8
Сообщение отредактировал dennyv8 - Четверг, 28.11.2013, 23:36
dennyv8, Вы просто определитесь сначала, что первично - модификация основного файла должна вызывать модификацию зависимых (и тогда основной файл должен "знать" расположение зависимых файлов), или наоборот, у "зависимых" файлов должно время от времени (или когда необходимо) возникать желание обновить информацию из основного файла... И уже исходя из этого, можно и строить "модель взаимоотношений". А то вы озаботились только тем, что плодите дубли - а затем сразу же начинаете разбираться с атакой клонов. Оккам был прав...
dennyv8, Вы просто определитесь сначала, что первично - модификация основного файла должна вызывать модификацию зависимых (и тогда основной файл должен "знать" расположение зависимых файлов), или наоборот, у "зависимых" файлов должно время от времени (или когда необходимо) возникать желание обновить информацию из основного файла... И уже исходя из этого, можно и строить "модель взаимоотношений". А то вы озаботились только тем, что плодите дубли - а затем сразу же начинаете разбираться с атакой клонов. Оккам был прав... AndreTM
AndreTM, Вы правы, мне нужно это : < у "зависимых" файлов должно время от времени (или когда необходимо) возникать желание обновить информацию из основного файла>, буду премного благодарен если поможете.
AndreTM, Вы правы, мне нужно это : < у "зависимых" файлов должно время от времени (или когда необходимо) возникать желание обновить информацию из основного файла>, буду премного благодарен если поможете.dennyv8
мне нужно это : < у "зависимых" файлов должно время от времени (или когда необходимо) возникать желание обновить информацию из основного файла>
Ну так и действуйте тогда с точки зрения "зависимого" файла. То есть "основной прайс", "таблица данных", "файл где-то на сети" - это всё наименование для источника данных. Вот и организуйте просто связь с источником в нужном вам виде. Только сначала определитесь с актуальностью данных! (т.е. насколько должен быть "свеж исходник"). Ведь "прайс" - понятие относительное, он может обновляться и ежеминутно... Но я так подозреваю, что у вас проблема намного меньше и проще - прайс обновляется раз-два в день, а "на местах" - достаточно проверить, было ли изменение, и, если надо - получить копию. Это я всё к тому веду, что не стОит напрягать сеть перекачкой полного списка по каждому чиху "оформителя счёта". Впрочем, всё это досужие рассуждения (несущие, конечно же, некий глубинный смысл ). Без конкретного описания техпроцесса и примеров реальных данных (а раз сеть - то и их относительного расположения) - мы так и будем просто продолжать мило беседовать... И да, тему, наверное, надо переносить в Sub...
мне нужно это : < у "зависимых" файлов должно время от времени (или когда необходимо) возникать желание обновить информацию из основного файла>
Ну так и действуйте тогда с точки зрения "зависимого" файла. То есть "основной прайс", "таблица данных", "файл где-то на сети" - это всё наименование для источника данных. Вот и организуйте просто связь с источником в нужном вам виде. Только сначала определитесь с актуальностью данных! (т.е. насколько должен быть "свеж исходник"). Ведь "прайс" - понятие относительное, он может обновляться и ежеминутно... Но я так подозреваю, что у вас проблема намного меньше и проще - прайс обновляется раз-два в день, а "на местах" - достаточно проверить, было ли изменение, и, если надо - получить копию. Это я всё к тому веду, что не стОит напрягать сеть перекачкой полного списка по каждому чиху "оформителя счёта". Впрочем, всё это досужие рассуждения (несущие, конечно же, некий глубинный смысл ). Без конкретного описания техпроцесса и примеров реальных данных (а раз сеть - то и их относительного расположения) - мы так и будем просто продолжать мило беседовать... И да, тему, наверное, надо переносить в Sub...AndreTM
Skype: andre.tm.007 Donate: Qiwi: 9517375010
Сообщение отредактировал AndreTM - Пятница, 29.11.2013, 00:38
Такой вариант - запускаете "зависимый файл" - там по событию открытия срабатывает макрос, который делает временную копию основного файла, открывает её, сам закрывается. Ну или просто пишется небольшой скрипт vbs. Или без всяких скриптов - делаете копию основного, открываете. Если делать макросом - то можно сперва проверить время изменения временного файла и основного - если они одинаковые, то основной можно не трогать, открывать сразу временный.
Такой вариант - запускаете "зависимый файл" - там по событию открытия срабатывает макрос, который делает временную копию основного файла, открывает её, сам закрывается. Ну или просто пишется небольшой скрипт vbs. Или без всяких скриптов - делаете копию основного, открываете. Если делать макросом - то можно сперва проверить время изменения временного файла и основного - если они одинаковые, то основной можно не трогать, открывать сразу временный.Hugo
Игорь, я же намекнул - смысл именно в минимизации прокачек данных по сети (как я понял ТС), ибо (КМК) - тормозят всякие "связанные списки" :). И здесь весь цимес как раз в использовании "данных по запросу" (то есть всё необходимое берётся из локальной копии источника), с проверкой его изменения всего лишь запросом данных (при открытии/при нажатии кнопки) из одной ячейки исходника - "дата-время последнего обновления прайса"... При этом никакого дублирования данных нет: локальные копии - это синхронизируемые по определённому принципу исходные данные.
Игорь, я же намекнул - смысл именно в минимизации прокачек данных по сети (как я понял ТС), ибо (КМК) - тормозят всякие "связанные списки" :). И здесь весь цимес как раз в использовании "данных по запросу" (то есть всё необходимое берётся из локальной копии источника), с проверкой его изменения всего лишь запросом данных (при открытии/при нажатии кнопки) из одной ячейки исходника - "дата-время последнего обновления прайса"... При этом никакого дублирования данных нет: локальные копии - это синхронизируемые по определённому принципу исходные данные.AndreTM
Skype: andre.tm.007 Donate: Qiwi: 9517375010
Сообщение отредактировал AndreTM - Пятница, 29.11.2013, 01:21
Или без всяких скриптов - делаете копию основного, открываете.
Да это проще всего. Только если в основной прайс внести изменения - эти изменения должны добавиться в открытый второй файл, который берет данные из первого. Чет я уже устал. По Excel не специализируюсь, не мое. Но хотелось бы сделать этот момент, если все таки найду в сети раньше решение - поделюсь. С данными решили, они обновляются автоматом, а вот добавление строки никак. Да вот нашел тему на этом же форуме что мне надо - но там так и не решился вопрос. http://www.excelworld.ru/forum/2-2480-1
Или без всяких скриптов - делаете копию основного, открываете.
Да это проще всего. Только если в основной прайс внести изменения - эти изменения должны добавиться в открытый второй файл, который берет данные из первого. Чет я уже устал. По Excel не специализируюсь, не мое. Но хотелось бы сделать этот момент, если все таки найду в сети раньше решение - поделюсь. С данными решили, они обновляются автоматом, а вот добавление строки никак. Да вот нашел тему на этом же форуме что мне надо - но там так и не решился вопрос. http://www.excelworld.ru/forum/2-2480-1dennyv8
Сообщение отредактировал dennyv8 - Пятница, 29.11.2013, 01:30
С данными решили, они обновляются автоматом, а вот добавление строки никак.
То есть вы даже не читаете нашего полуночного разговора... пичалька
Вы же не рассказали, как вы "с данными решили". Подозреваю, что копированием предыдущего диапазона в нужное место. Я (в своё время, лет 15 назад ) вашу задачу решал легко и просто "одним движением" (посоветованным выше Сергеем): в файле приёмнике пишем формулами "с запасом" кучу внешних ссылок на файл-источник. То есть получаем в листе-приёмнике копию листа-источника, а при открытии файла - запрос на обновление ссылок. А уже в файле-приёмнике все расчеты и формулы строим на основании локальной копии. Достаточно помнить один момент - внешние ссылки в приёмнике должны быть абсолютными... Всё это я делал, пока не поумнел. Вернее, умным я был и до этого, но не в Офисе :)
С данными решили, они обновляются автоматом, а вот добавление строки никак.
То есть вы даже не читаете нашего полуночного разговора... пичалька
Вы же не рассказали, как вы "с данными решили". Подозреваю, что копированием предыдущего диапазона в нужное место. Я (в своё время, лет 15 назад ) вашу задачу решал легко и просто "одним движением" (посоветованным выше Сергеем): в файле приёмнике пишем формулами "с запасом" кучу внешних ссылок на файл-источник. То есть получаем в листе-приёмнике копию листа-источника, а при открытии файла - запрос на обновление ссылок. А уже в файле-приёмнике все расчеты и формулы строим на основании локальной копии. Достаточно помнить один момент - внешние ссылки в приёмнике должны быть абсолютными... Всё это я делал, пока не поумнел. Вернее, умным я был и до этого, но не в Офисе :)AndreTM
Skype: andre.tm.007 Donate: Qiwi: 9517375010
Сообщение отредактировал AndreTM - Пятница, 29.11.2013, 01:37
"Только если в основной прайс внести изменения - эти изменения должны добавиться в открытый второй файл, который берет данные из первого. " - а вот это будет только тогда, когда основной файл сохранят, а в связанном обновят ссылки. И в общем практически по сети будут переданы все данные файла. И по сути макросом сделать копию файла и её открыть - надёжнее. Так не только данные получите, но и форматы-заливки. А то может там кто-то что-то метит цветом, меняет формат ячеек (был текст, стала дата - с виду там ничего не поменялось, а в копии значительно) и т.д....
"Только если в основной прайс внести изменения - эти изменения должны добавиться в открытый второй файл, который берет данные из первого. " - а вот это будет только тогда, когда основной файл сохранят, а в связанном обновят ссылки. И в общем практически по сети будут переданы все данные файла. И по сути макросом сделать копию файла и её открыть - надёжнее. Так не только данные получите, но и форматы-заливки. А то может там кто-то что-то метит цветом, меняет формат ячеек (был текст, стала дата - с виду там ничего не поменялось, а в копии значительно) и т.д....Hugo
Hugo как раз вы правильно сказали, видимо надо делать макрос чтобы переносил всю книгу и строки и т.д. Правильно я понял что макрос будет будет делать 100% копию оригинала файла? Где можно взять макрос или как его написать, в этом я точно не понимаю ((
Hugo как раз вы правильно сказали, видимо надо делать макрос чтобы переносил всю книгу и строки и т.д. Правильно я понял что макрос будет будет делать 100% копию оригинала файла? Где можно взять макрос или как его написать, в этом я точно не понимаю ((dennyv8
Нашел в сети код : 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