Профессиональные приемы работы в Microsoft Excel

Обмен опытом => Microsoft Excel => Тема начата: NewBe от 18.03.2015, 01:09

Название: Макрос для переноса данных по датам листов
Отправлено: NewBe от 18.03.2015, 01:09
здравствуйте! Помогите пожалуйста с автоматизацией. У меня есть 2 файлика но я немогу склеить данные .Очень нужен макрос, так как листов будит много и в ручную переносить нереально будет.  ???
есть 2 файла "Daily" и "03.2015". Файл 03.2015 это за 3 месяц 2015 года все операции, а файл Daily содержит полную информацию по операциям за каждый день этого месяца.
В файле Daily создаются макросом листы с именем соответствующему дате открытия. А в 03.2015 идет соединение данных из этихз листов.
Очень нужно чтобы макрос переносил с конечного столбца "Всего" в файле Daily значения которые в фиолетовых ячейках и помещал их в фалй 03.2015 под столбец дата которого = дате переносимого листа...Например из листа "02.03.2015" книги Daily в столбец "02.03.2015 " книги "03.2015". И потом также по всем остальнім листам.

Прикреплю файлі и снимок на котором постараюсь показать что куда. Задача вроди не сложная, но уже мозги кипят а толку нету как и умения макросить.
Очень благодарен всем кто проявит свое искуство програмировать!
Название: Re: Макрос для переноса данных по датам листов
Отправлено: gling от 18.03.2015, 20:51
Здравствуйте. Посмотрите с ДВССЫЛ() правда она работает только если оба файла открыты. Откройте файл с названием "Daily"
Название: Re: Макрос для переноса данных по датам листов
Отправлено: NewBe от 19.03.2015, 01:35
Спасибо вам большое!Формулы работают...может я смогу их как нибудь вписать в макрос. Просто задача у меня как бы заставить макрос переносить данные именно из нужных ячеек в  соответствующие им но в другой книге, пусть даже обе книги будут открыты. Я не могу понять как заставить его выбрать нужные данные  именно с ячеек которые находятся напротив определеных текстовых полей, тоесть значения этих ячеек привязани к ячейка с названием. ПРобовал через  "Like" НЕХВАТАЕТ ЗНАНИЙ.
Например чтобы значение напротив яцейки "Вася" было к нему привязано и при переносе этого значения в другую книгу макрос искал такую же ячейку "Вася" и ставил туда это значение. А с листами и датами уже как получится..буду копировать на один лист а потом на втрой отдельно.

Название: Re: Макрос для переноса данных по датам листов
Отправлено: Wasilic от 19.03.2015, 09:56
Цитата: NewBe от 18.03.2015, 01:09нужно чтобы макрос переносил с конечного столбца "Всего" в файле Daily значения которые в фиолетовых ячейках и помещал их в фалй 03.2015 под столбец дата которого = дате переносимого листа.
1. В примере, файла Daily, таблички идентичны по к-ву столбцов и строк, так будет всегда?
2. Цвет ячеек "Итого" всегда будет таким?
3. Когда будет производится перенос -  после заполнения всех дней месяца? Ежедневно? Периодически?
4. Наличие листов на весь месяц в файле Daily будет присутствовать на весь месяц изначально? Или они создаются периодически?
Цитата: NewBe от 19.03.2015, 01:35не могу понять как заставить его выбрать нужные данные  именно с ячеек которые находятся напротив определеных текстовых полей, тоесть значения этих ячеек привязани к ячейка с названием.
5. А вот эти "определенные текстовые поля - РСТ, ДосПог, Капитал" всегда будут неизменны? Можно ли к ним привязать макрос? Или они могут видоизменяться в написании?
Задача не особо сложная, но пути решения во многом зависят от множества вопросов. А экстрасенсов на этом форуме я пока не встречал.
Название: Re: Макрос для переноса данных по датам листов
Отправлено: gling от 19.03.2015, 13:47
Можно собрать данные, со всех листов, на один лист (макросом) и на базе этих данных сделать сводную
Название: Re: Макрос для переноса данных по датам листов
Отправлено: NewBe от 20.03.2015, 01:21
gling, я не знаю как єто сделать, я новичок в таких делах...у меня пока нет таких умений(
Цитата: Wasilic от 19.03.2015, 13:47
1. В примере, файла Daily, таблички идентичны по к-ву столбцов и строк, так будет всегда?
да, они идентичны.  иногда, бывает добавляют 1 строку иле удаляют в файл Daily, но это уже можно будт сделать вручную ,иле сделать макрос для переноса новых строк в файл 03.2015...это уже такое...они идентичны.
Цитировать2. Цвет ячеек "Итого" всегда будет таким?
Цвет ячеек не меняется
Цитировать3. Когда будет производится перенос -  после заполнения всех дней месяца? Ежедневно? Периодически?
Перенос происходит каждый день за предыдущую дату...тоесть сегодня вечером заполняются и переносится данные с листа у которего дата за вчера. думал может сделать по закрытию книги иле как еще незнаю...
Цитировать4. Наличие листов на весь месяц в файле Daily будет присутствовать на весь месяц изначально? Или они создаются периодически?
Листы создаются макросом каждый день...к сожалению кода этого макроса нет, он копирует при открытии один из предыдущих листов в конец и переименовывает его с датой за вчера. так при заполнении данных сегодня за вчерашний день, создается лист за вчера.
Цитировать5. А вот эти "определенные текстовые поля - РСТ, ДосПог, Капитал" всегда будут неизменны? Можно ли к ним привязать макрос? Или они могут видоизменяться в написании?
Поля я написал примерно ,в целом в обих книгах поля однаковы, иногда бывает что-то добавляют, но это уже можно вручную исправить. К ним можно привязывать, в этом и вся проблема...я не мог понять как же привязать эти значения к определенным полям. Если это возможно, это просто суппер!

Если я что-то непонятно написал, я постараюсь детально описать еще....я очень надеюсь что это возможно
Название: Re: Макрос для переноса данных по датам листов
Отправлено: Wasilic от 20.03.2015, 09:36
Чем дальше в лес тем больше вопросов. ::)
Цитата: NewBe от 20.03.2015, 01:213)Перенос происходит каждый день ....... думал может сделать по закрытию книги иле как еще незнаю...
Я так понял, что эта задача еще в проекте и никаких наработок ещё нет, кроме табличек.

Цитата: NewBe от 20.03.2015, 01:214)Листы создаются макросом каждый день...
А почему не создать сразу 01....31 лист и в зависимости от даты вносить данные?

Цитата: NewBe от 20.03.2015, 01:214)...к сожалению кода этого макроса нет,
Тогда, кто же создает листы?  ::)

Цитата: NewBe от 20.03.2015, 01:21так при заполнении данных сегодня за вчерашний день, создается лист за вчера.
И каким образом он создается? И кто заполняет лист данными?

Слишком много неясностей в вашем проекте. Опишите полный, желаемый, алгоритм работы с файлом "Daily". Что с ним будет при завершении месяца?
Возможно будут другие предложения.

Название: Re: Макрос для переноса данных по датам листов
Отправлено: vikttur от 20.03.2015, 11:05
NewBe, посмотрите свое сообщение №5. Исправлено.
Цитируйте правильно. Но цитировать нужно не всегда (просмотрите другие сообщения).
Название: Re: Макрос для переноса данных по датам листов
Отправлено: NewBe от 21.03.2015, 20:35
Цитата: Wasilic от 20.03.2015, 09:36
Чем дальше в лес тем больше вопросов. ::)
Цитата: NewBe от 20.03.2015, 01:213)Перенос происходит каждый день ....... думал может сделать по закрытию книги иле как еще незнаю...
Я так понял, что эта задача еще в проекте и никаких наработок ещё нет, кроме табличек.

Цитата: NewBe от 20.03.2015, 01:214)Листы создаются макросом каждый день...
А почему не создать сразу 01....31 лист и в зависимости от даты вносить данные?

Цитата: NewBe от 20.03.2015, 01:214)...к сожалению кода этого макроса нет,
Тогда, кто же создает листы?  ::)

Цитата: NewBe от 20.03.2015, 01:21так при заполнении данных сегодня за вчерашний день, создается лист за вчера.
И каким образом он создается? И кто заполняет лист данными?

Слишком много неясностей в вашем проекте. Опишите полный, желаемый, алгоритм работы с файлом "Daily". Что с ним будет при завершении месяца?
Возможно будут другие предложения.

Я вас запутал ,извините! на локальном сервере лижат оба файла Daily и фалй с названием месяца ,в данном случаи "03.2015"...Я захожу в файл  Daily   и заполняю сегодня все что было сделано за вчера и так каждый день. Тоесть я всегда заполняю за предыдущий день. Для упрощения я нашел макрос ,который приоткрытии Daily, копировал последний лист, очищал его от уже введенных данных и давал ему имя вчерашнего дня(чтобы не создавать вручную). Далее, после заполнения всех данных в файле  Daily их нужно перенести в
общий файл за месяц "03.2015". По завершению переноса Daily вмести с введенными данными сохраняется и просто закрывается. Тоже  самое с файлом 03.2015. В конйце месяца создаю новый файл Daily, уже с листами за новый месяц, а так же общий файл нового месяца "04.2015"

Макрос который делал листы в 2013 офисе не проканал(( и я его удалил. Теперь листы делаю вручную(
Почему не создать сразу все лесты ,ну дело в том, что за выходные листы не нужны ,а как это спроэктировать я не вкурсе...если у вас есть лучше идеи поделитесь пожалуйста.

Вы правы ,проект только в разработке ,ну если можно его проэктом назвать. Дело в том что сами файлы я не могу показать ,так как они на локальном сервере под защитой к которой у меня нет доступа. Поэтому я по памяти набросал 2 файла и общий принцып работы. Если решить эту задачу, то я смог бы поднастроить макрос к тем файлам.
Ну почему не обратиться по имени, без таких бездумных цитат?! Кнопка не для ответа, она - для ЦИТИРОВАНИЯ! МОДЕРАТОР
Название: Re: Макрос для переноса данных по датам листов
Отправлено: gling от 22.03.2015, 00:19
Попробуйте эти два файла. Не стал делать лист при открытии, 10 раз откроете файл старая информация сотрется создастся новый лист или ошибка будет выскакивать, что такой лист уже есть. Сделал кнопку на создание листа.  В другом файле сбор и составление таблицы. В первом сообщении лист создавался макросом, раз он не работает попробуйте тот что в файле. Файлы разные, вопросы разные. В общем это нарушение на усмотрение модератора. Если что то удалит, создавайте новую тему.
Название: Re: Макрос для переноса данных по датам листов
Отправлено: Wasilic от 22.03.2015, 21:11
Цитата: NewBe от 21.03.2015, 20:35если у вас есть лучше идеи поделитесь пожалуйста.
Не знаю лучшие они или нет, но есть. Один из вариантов: - в файле "Daily" создать 31 лист, (1...31), так будет проще писать макрос. По завершении месяца (если это нужно), сохранить как Daily-3-2015. Снова открыть "Daily", очистить таблицы и продолжать работать уже с 4-м месяцем. Все это может сделать макрос процедурой типа "закрыть месяц".  Так же и с файлом 3-2015. Таким образом, больше ничего не нужно будет создавать, добавлять, менять.
На счет выходных, а что, пропустить нельзя? В следующем месяце они уже не будут выходными. Если вариант приемлем. Можно думать дальше.
Название: Re: Макрос для переноса данных по датам листов
Отправлено: NewBe от 22.03.2015, 23:17
Извините за цетирование! буду просто отвечать.
Название: Re: Макрос для переноса данных по датам листов
Отправлено: NewBe от 22.03.2015, 23:25
gling ,спасибо вам за помощ! я пока попробую освоить все что вы сделали и отпишусь.
----------------------------------------------------------------------------------------------
Wasilic, ваш вариант приемлем. Прошу и вас сделать свой вариант решения! Все что вы сделаите принимается .так как у меня вариантов нет, как и вашей практики. Буду очень благодарен.
Название: Re: Макрос для переноса данных по датам листов
Отправлено: Wasilic от 24.03.2015, 10:10
Вариант:
Название: Re: Макрос для переноса данных по датам листов
Отправлено: NewBe от 25.03.2015, 01:13
Wasilic извините ,можно ли спросить как работает ваш метод...я не совсем понял что происходит в файлах.
Название: Re: Макрос для переноса данных по датам листов
Отправлено: Wasilic от 26.03.2015, 20:39
Цитата: NewBe от 25.03.2015, 01:13как работает ваш метод...я не совсем понял что происходит в файлах.
Ничего пока не происходит. Я предложил пример работы с файлами и их данными. Думал поймете.
В файле "Daily" должно быть 31 лист (день).
В меню ставите месяц не изменяя его пока он не закончится.
Выбрав число, входите в соответствующий лист (число месяца), заполняете таблицу, и жмете кнопку "добавить в сводную".
В файле свод, 12 листов (месяцев), данные попадают в соответствующий месяц в соответствующее число.
Таким образом, файл свод собирает данные за целый год.
Манипуляции с сохранением файлов по окончанию дней в "Daily" и месяцев в "свод" ... это вопрос другой.
Теперь понятно?