Страницы: 1
RSS
Макрос копирования ячеек по условию в EXCEL
 
Здравствуйте господа программисты!

Столкнулся с непосильной задачей. Знания в написании макросов на уровне новичка, так что прошу помощи. Буду благодарен за любые советы.

И так, есть некий выгружаемый файл (см. вложение) в котором несколько листов. Лист "Сводная таблица" в который выгружаются данные по каждому пациенту, в эту таблицу данные выгружаются и накапливаются ежедневно (на сегодняшний день база небольшая и имеет около 1500 строк).Задача, нужен макрос который делал бы сортировку по ФИО врача и по дате, с копированием данных на другой лист. Скажем так, есть лист "Сидорова Н.М." с программной кнопкой, назовем "Итог за период" (см. вложение) и при клике на эту кнопку надо чтобы выплывало окно с предложением ввести дату, скажем за период 01.03.2015 - 31.03.2015., и данные с листа "Сводная таблица" копировались бы в лист "Сидорова Н.М." с сортировкой только Сидорова Н.М. и с заданной датой (строки должны копироваться в лист "Сидорова Н.М." начиная со столбца "F" ), При повторном клике на кнопку данные с листа "Сидорова Н.М." удаляются и копируются новые, т.е. каждый раз обновляются, без накопления.
Тоже самое и по другим врачам. Если есть такая возможность прошу помощи. Кстати лист "Сводная таблица" для администратура будет скрыта и ни в коем случаи не удаляется, т.е. не редактируется.

Если силами "EXCEL" не возможно выполнить данную задачу то прошу помочь в написание макроса с сортировкой только по ФИО врача, без даты. Фильтровать по ФИО врача, силами "EXCEL" не получится (типа МЕНЮ-ДАННЫЕ-ФИЛЬТР), т.к. некоторые столбцы суммируются по условиям и заносятся в таблицы (см. таблицы №1 и №2 листы врачей). Заранее спасибо.
Изменено: Dmitry_K - 29.04.2015 20:57:06
 
А есть ли смысл каждому врачу свой лист?  
 
В принципе нет, итог будет
выгружаться раз в месяц и по запросу врача или администратора.
 
Вы в примере показали три листа с врачами, а фактически их больше вот я о чём. И как Вы планируете скрывать таблицу №2?
 
скорей всего будет на другом листе. Пока сам точно не знаю.  
 
Цитата
Юрий М написал: Вы в примере показали три листа с врачами, а фактически их больше
А с этим как?
 
В принципе можно сделать так:
При клике на кнопку "ИТОГ за период врача Сидорова" (лист ИТОГ врача), данные копируются в таблицу листа "Врач" и консолидируются в таблицу №1 листа ИТОГ врача. Во вложении пример варианта №2. Листы "Сводная таблица" и "Врач" будут скрыты
 
Цитата
Юрий М написал: А с этим как?
Для каждой кнопки данные консолидируются только для одного врача
 
Цитата
Dmitry_K написал: Листы "Сводная таблица" и "Врач" будут скрыты
Т.е. мы формируем выборку по конкретному врачу и эту же выборку скрываем? А зачем?
 
Прошу  прощение лист "Врач" будет доступен. По большому счету врачу и администратору нужна только таблица №1  листа "ИТОГ врача". А лист "Врач" необходим если будут какие то спорные моменты за определенные временной период
Изменено: Dmitry_K - 02.05.2015 18:43:35
 
Dmitry_K, а зачем Вы цитируете всё подряд? Исправьте свои сообщения.
И лист "Врач" необходим не только для выяснения спорных моментов, а именно для того, чтобы на его основе сформировать первую таблицу.
Для написания макроса потребуется определённое время...
 
Юрий М,
Все правильно, фактически для таблицы №1
 
Вместо кучи кнопок предлагаю одну. См. файл (пока без функционала выборки).
 
Юрий М,
А выборку по врачам как делать? Или же при клике на кнопку надо будет ручками писать ФИО врача?
 
А не пробовали выбрать врача в поле "Врач"?
 
Юрий М, Врача я выберу по фильтру, но, как я смогу занести данные в таблицу №1 и №2. Так как в таблицу №2 заносятся данные по условиям
 
Да никакого фильтра не нужно - программа всё сделает сама. Врач и даты начала и окончания периода выбираются на форме. По нажатию на кнпоку "ОК" будет работать макрос.
 
Вы вообще новую кнопку нажимали?
 
Юрий М,
снимаю свой вопрос, к сожалению не нажимал. Вижу выпадающее меню и временной период, спасибо, одной кнопки достаточно.
 
Цитата
Dmitry_K написал: к сожалению не нажимал
А для чего же я её создал - для красоты? )) Макрос будет готов завтра.
 
Юрий М,
Спасибо
 
Готово.
 
Юрий М,
Большое спасибо! пойду внедрять.
 
Юрий М,
Добрый день!
Сегодня при тестировании макроса вылезли следующие ошибки:
1. При выборе отчетного периода скажем за этот месяц (01.05.15 - 31.05.15) программа подтягивает старые данные, а точнее за апрель месяц. При выборе  за март месяц  и позднее программа выводит нулевой отчет (т.к. врач в этот период не работал)  и в таблицу листа "Врач" ни чего не заносит, но при этом в дальнейшем выскакивает следующая ошибка:

2. Если таблица листа "Врач" не заполнена то вылетает ошибка
"Run-time error 1004:
Изменить часть объединенной ячейки не возможно"
и ругается вот на эту строку .Range(.Cells(4, 6), .Cells(LastRow + 1, 47)).ClearContents

Подскажите что делать?
 
Для начала показать файл с тем данными, на которых тестируете.
 
Юрий М,
файл во вложении
 
Проверьте.
 
Спасибо
Страницы: 1
Наверх