Подскажите, может вопрос который задам уже обсуждался (сам искал и не нашел). Условия: в директории имеются поддиректории и книги excel с ежедневно пополняемой БД. Вопрос: как при добавлении ячейки с данными автоматически добавить эту ячейку с этим значением в каждую книгу, лист? Причем, желательно, чтобы данные автоматически отфильтровывались по возрастанию (т.е. переносились в зависимости от значения в середину массива книг и листов).
Подскажите, может вопрос который задам уже обсуждался (сам искал и не нашел). Условия: в директории имеются поддиректории и книги excel с ежедневно пополняемой БД. Вопрос: как при добавлении ячейки с данными автоматически добавить эту ячейку с этим значением в каждую книгу, лист? Причем, желательно, чтобы данные автоматически отфильтровывались по возрастанию (т.е. переносились в зависимости от значения в середину массива книг и листов).Nykifor1379
Теория реляционных баз данных учит нас добавлять в одно место, а из ста других смотреть на это одно место и отображать в себе (в нужном порядке и конкретным образом). Может, развернуть Вашу задачу в таком направлении?
Теория реляционных баз данных учит нас добавлять в одно место, а из ста других смотреть на это одно место и отображать в себе (в нужном порядке и конкретным образом). Может, развернуть Вашу задачу в таком направлении?Gustav
Так и есть (если я правильно понял мысль). Данные будут вноситься ежедневно в одну таблицу (за месяц, следующий месяц будет в другом файле), но могут появиться новые строки с данными (и вот имена (столбец "В") и нужно чтоб обновились во всех книгах, но без внесенных значений-они уникальные для каждой даты). Итогом всей проделанной работы будет сравнительный анализ столбца "В" (ежедневный, недельный, месячный, годовой), но это другой вопрос, пока задача организовать грамотный сбор информации. Дело в том, что в связи с конфиденциальностью некоторых данных не могу привести конкретный пример, по-сему все так завуалированно, сорри..). Могу ли я как-то еще пояснить идею которую решил воплотить в жизнь?
Так и есть (если я правильно понял мысль). Данные будут вноситься ежедневно в одну таблицу (за месяц, следующий месяц будет в другом файле), но могут появиться новые строки с данными (и вот имена (столбец "В") и нужно чтоб обновились во всех книгах, но без внесенных значений-они уникальные для каждой даты). Итогом всей проделанной работы будет сравнительный анализ столбца "В" (ежедневный, недельный, месячный, годовой), но это другой вопрос, пока задача организовать грамотный сбор информации. Дело в том, что в связи с конфиденциальностью некоторых данных не могу привести конкретный пример, по-сему все так завуалированно, сорри..). Могу ли я как-то еще пояснить идею которую решил воплотить в жизнь?Nykifor1379
Сообщение отредактировал Nykifor1379 - Среда, 03.10.2012, 16:11
О! Хороший вопрос, я кстати как раз примерно с этим сейчас и воюю. Только чуток вопрос отличается от вопроса автора, судя с файла автора ему нужно добавлять данные в конец таблицы и сортировать, а мне нужно вносить строку в средину таблицы. В моём файле тоже есть пример с двумя листами: На одном листе БАЗА только наименование, на втором - таблица с данными. Вопрос, как сделать так чтоб при добавлении новой строчки в листе БАЗА куда нибудь в средину, появилась ЦЕЛАЯ НОВАЯ СТРОКА В ТОМ ЖЕ МЕСТЕ в таблице но и все данные в этой таблице также должны сместиться.
О! Хороший вопрос, я кстати как раз примерно с этим сейчас и воюю. Только чуток вопрос отличается от вопроса автора, судя с файла автора ему нужно добавлять данные в конец таблицы и сортировать, а мне нужно вносить строку в средину таблицы. В моём файле тоже есть пример с двумя листами: На одном листе БАЗА только наименование, на втором - таблица с данными. Вопрос, как сделать так чтоб при добавлении новой строчки в листе БАЗА куда нибудь в средину, появилась ЦЕЛАЯ НОВАЯ СТРОКА В ТОМ ЖЕ МЕСТЕ в таблице но и все данные в этой таблице также должны сместиться.DJ_Marker_MC
На одном листе БАЗА только наименование, на втором - таблица с данными. Вопрос, как сделать так чтоб при добавлении новой строчки в листе БАЗА куда нибудь в средину, появилась ЦЕЛАЯ НОВАЯ СТРОКА В ТОМ ЖЕ МЕСТЕ в таблице но и все данные в этой таблице также должны сместиться.
Если к вопросу подходить чисто механически, то можно так: щелкаете мышкой по корешку листа "База", жмёте и держите Shift и щелкаете по корешку листа "Таблица" - происходит группировка листов. Далее вставляете пустую строку в "Базу" и такая же пустая строка автоматически вставляется в то же место на листе "Таблица".
На практике же - упаритесь так делать, даже если это и подходит Вам. А почему бы не развернуть задачу наоборот - все данные вести на одном листе, а вот если потом понадобятся только названия (зачем-то), то скопировать их на чистый новый лист. А?
Quote (marker_mc)
На одном листе БАЗА только наименование, на втором - таблица с данными. Вопрос, как сделать так чтоб при добавлении новой строчки в листе БАЗА куда нибудь в средину, появилась ЦЕЛАЯ НОВАЯ СТРОКА В ТОМ ЖЕ МЕСТЕ в таблице но и все данные в этой таблице также должны сместиться.
Если к вопросу подходить чисто механически, то можно так: щелкаете мышкой по корешку листа "База", жмёте и держите Shift и щелкаете по корешку листа "Таблица" - происходит группировка листов. Далее вставляете пустую строку в "Базу" и такая же пустая строка автоматически вставляется в то же место на листе "Таблица".
На практике же - упаритесь так делать, даже если это и подходит Вам. А почему бы не развернуть задачу наоборот - все данные вести на одном листе, а вот если потом понадобятся только названия (зачем-то), то скопировать их на чистый новый лист. А?Gustav
Gustav, есть ряд причин по которым так не подходит. База - это у меня лист ОГЛАВЛЕНИЕ с которого данные попадают в листбокс юзерформс и там много разных других условий. Таблица - это у меня разные года, на данный моммент это 3 разных листа 2010, 2011, 2012. Совмещать их на одном листе, не нужно поскольку есть лист еще сравнение в котором много вычислений с подвязкой к 3 листам через двссыл. И мне хотелось бы чтоб если я вношу новую товарную группу в базу, эта же строка появлялась на все листах (2010, 2011, 2012). Это так вкратце.
Gustav, есть ряд причин по которым так не подходит. База - это у меня лист ОГЛАВЛЕНИЕ с которого данные попадают в листбокс юзерформс и там много разных других условий. Таблица - это у меня разные года, на данный моммент это 3 разных листа 2010, 2011, 2012. Совмещать их на одном листе, не нужно поскольку есть лист еще сравнение в котором много вычислений с подвязкой к 3 листам через двссыл. И мне хотелось бы чтоб если я вношу новую товарную группу в базу, эта же строка появлялась на все листах (2010, 2011, 2012). Это так вкратце.DJ_Marker_MC
макросом - без проблем, у меня файл и без этого содержит макросы (UserForms) так что макросом не напугаете))) насчет положения, то не совсем одинаковые БАЗЕ он же лист Оглавление в моём реальном файле, данные находятся в столбце B и начинаются с 3-й строки, а на листах 2010, 2011, 2012 они стоят в столбце С начиная со второй строчки. Хотя вот можете сам файлик глянуть как оно выглядит. Думаю с реального примера будет понятнее чего я хочу добиться))
макросом - без проблем, у меня файл и без этого содержит макросы (UserForms) так что макросом не напугаете))) насчет положения, то не совсем одинаковые БАЗЕ он же лист Оглавление в моём реальном файле, данные находятся в столбце B и начинаются с 3-й строки, а на листах 2010, 2011, 2012 они стоят в столбце С начиная со второй строчки. Хотя вот можете сам файлик глянуть как оно выглядит. Думаю с реального примера будет понятнее чего я хочу добиться))DJ_Marker_MC
Прежде чем продумывать алгоритм синхронизации двух списков, следует рассмотреть несколько возможных ситуаций перед началом синхронизации.
Ситуация 1. Новые в Базе
[vba]
Code
База Таблица -------------- А А Б Б ББ В В Г Г Д Д Е ДД Е
[/vba] Здесь действия по синхронизации очевидны: ББ вставляется в Таблицу между Б и В, ДД - между Д и Е.
Ситуация 2. Отсутствующие в Базе
[vba]
Code
База Таблица -------------- А А Б Б В В Г Г Д Д Е Е ЕЕ Ж
[/vba] С ЕЕ понятно. А как реагировать на Ж? Безоговорочно удалять? Или ничего не делать и предлагать исправить ситуацию вручную?
Ситуация 3. Разные сортировки
[vba]
Code
База Таблица -------------- А Г Б А ББ Д В Е Г В Д Б ДД Е
[/vba] Куда вставлять ББ и ДД в Таблицу? После Б и после Д? Или перед В и перед Е? Или в строку 3 и в строку 7 от начала (сдвигая существующие 3 и 7 ниже)? Или ничего не делать и предлагать исправить ситуацию вручную?
Для алгоритма необходимо выбрать только один вариант поведения в ситуациях 2 и 3.
Прежде чем продумывать алгоритм синхронизации двух списков, следует рассмотреть несколько возможных ситуаций перед началом синхронизации.
Ситуация 1. Новые в Базе
[vba]
Code
База Таблица -------------- А А Б Б ББ В В Г Г Д Д Е ДД Е
[/vba] Здесь действия по синхронизации очевидны: ББ вставляется в Таблицу между Б и В, ДД - между Д и Е.
Ситуация 2. Отсутствующие в Базе
[vba]
Code
База Таблица -------------- А А Б Б В В Г Г Д Д Е Е ЕЕ Ж
[/vba] С ЕЕ понятно. А как реагировать на Ж? Безоговорочно удалять? Или ничего не делать и предлагать исправить ситуацию вручную?
Ситуация 3. Разные сортировки
[vba]
Code
База Таблица -------------- А Г Б А ББ Д В Е Г В Д Б ДД Е
[/vba] Куда вставлять ББ и ДД в Таблицу? После Б и после Д? Или перед В и перед Е? Или в строку 3 и в строку 7 от начала (сдвигая существующие 3 и 7 ниже)? Или ничего не делать и предлагать исправить ситуацию вручную?
Для алгоритма необходимо выбрать только один вариант поведения в ситуациях 2 и 3.Gustav