Страницы: 1
RSS
Автоматическое создание листов по шаблону, При пополнении таблицы данными - создается лист по условию
 
Уважаемые специалисты!
Помогите, пожалуйста, с решением такой задачи.

В файле 2 листа:
- список клиентов;
- шаблон отчета.

Как только пользователь добавляет в список еще одного клиента - автоматически создается новый лист:
- Название клиента в списке клиентов становится ссылкой на соответствующий созданный лист.
- создаваемый лист = скопированный шаблон отчета.
- название создаваемого листа = название клиента.
- в создаваемый лист вставляются данные из списка клиентов.

Подскажите, как такое сделать?

Пример во вложении.
 
Я бы сделал ТАК. Зачем хранить одинаковые бланки, когда их можно формировать динамически  
Изменено: Sanja - 20.06.2015 20:28:39
Согласие есть продукт при полном непротивлении сторон
 
Тут я так понимаю всё равно надо создавать какую-то кнопочку для создания листа. Ибо если делать на добавление клиента, то это привязывается к режиму редактирования ячеек. А если человек допустит ошибку в клиенте и начнёт исправлять букву, лист опять создастся, уже с новым клиентом, хотя он тот же. И многие другие проблемки. Поэтому тут не просто создание листа и клиента, тут должен быть какой-то другой фактор влияющий на создание листа.
Думаю, что понятно объяснил суть проблемы.
Если просто сделать копию листа шаблона макросом, то можно так
Код
   Sheets("Шаблон отчета").Copy Before:=Sheets(1)
   Sheets(1).Name = "Клиент"
Изменено: CAHO - 20.06.2015 20:29:37
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Цитата
Sanja написал: Я бы сделал ТАК. Зачем хранить одинаковые бланки, когда их можно формировать динамически
Мне немного не подходит. Мне именно нужно создание листа при каждом добавлении в список клиентов.

Цитата
CAHO написал: Тут я так понимаю всё равно надо создавать какую-то кнопочку для создания листа.
Наверное, Вы правы. тогда добавляется еще одна задача:
В список клиента внес - и автоматически в строке созданного клиента должна появиться кнопочка "Сформировать отчет"
 
Цитата
Константин написал: Как только пользователь добавляет в список еще одного клиента - автоматически создается новый лист:
Именно автоматически? Какой момент принять за создание новой записи - заполнены оба столбца? А если, как заметил САНО, при вводе данных произогшла ошибка и нужно подкорректировать запись немного - что тогда?
 
Цитата
Константин написал: создание листа при каждом добавлении
тогда неизбежны
Цитата
CAHO написал: И многие другие проблемки
нужно продумать тщательнее.
ИМХО. Все равно не пойму зачем хранить в книге заполненные КАРТОЧКИ, храните все что относится к клиенту в общей базе и при необходимости формируйте карточки. ИМХО
Изменено: Sanja - 20.06.2015 21:04:57
Согласие есть продукт при полном непротивлении сторон
 
Ок, понял. Спасибо за советы. Действительно, решил пересмотреть подход к формированию карточек.
 
Предлагаю по нажатию кнопки формировать карточку.
 
Если всё же решите заводить каждому клиенту свой лист, то см. файл. Но возможны ошибки из-за имён листов...
 
Юрий!
как всегда Вам огромное спасибо!!!

Я так и хочу решить!
Есть один момент. Создали "Петров", далее "Бымц!", лист Петров готов.
Проходит время, создаются "Сидоров" и "Фролов", но "Бымц!" протестует, говорит, что лист с таким именем уже существует (имеет ввиду Петрова). И есссно, листы Сидоров и Фролов не создаются.

Как лучше:
- отдельный "Бымц!" на каждую строку (но тогда она должна появляться напротив строки, где появился хот один символ в колонках B и С)
- один общий "Бымц!" на всю таблицу, но идет проверка на дублирование имен_клиентов/листов
?
 
Не смог воспроизвести у себя подобную ошибку, когда создаётся лист с НОВОЙ фамилией. Уточните проблему.
P.S. Но сам подход не очень хороший: при большой клиентской базе будет куча листов...
 
Юрий, пардон, действительно я ошибся.
Сначала поигрался, потом код посмотрел.
все ок, спасибо.

Но в целом я с Вами согласен, много листов выходит. Надо менять подход.
 
Вариант: добавлять записи в базу, а если нужна карточка - выводить по запросу (поиску) данные в лист "Шаблон".
Страницы: 1
Читают тему
Наверх