|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.01.2013, 17:36 | #1 |
Пользователь
Регистрация: 18.08.2012
Сообщений: 10
|
Цикл с условиями и выход из цикла
Добрый вечер!
Требуется ваша помощь и совет. Я недавно начала осваивать макросы, поэтому не всегда представляю, в каком направлении двигаться, очень надеюсь на вашу помощь! На первом этапе такие задачи: 1. Сотрудник может выбрать услугу из списка - ок 2. Сотрудник может не выбирать из списка, а ввести код услуги, если знает - ок 3. Если до ячейки "Дополнительные услуги" осталось меньше 1 пустой строчки, то вставить пустую - не сделала Проблема в том, чтобы макрос давал возможность выбрать из списка, я подумала, может поможет условие на изменение ячеек (Если произошло изменение в диапазоне, то делать циклы и т.п.) или может есть еще какое нибудь решение? И не могу настроить кнопку выхода из макроса (которая в будущем будет запускать макрос по копированию данных в таблицу) *Информации нашла и прочитала очень много, мозг закипел и произошел ступор, не получается, хотя и понимаю, что, наверно, это далеко не самая сложная задача. Код:
|
20.01.2013, 01:18 | #2 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Я думаю можно сделать так:
1. Этот код забыть. 2. Заготовить заранее в ячейках с ценами ВПР по виду операции (если не нашли, то ставим пробел). Например 10 строк, или 20, или 30 - сколько может понадобиться. 3. Проверку ввода "смягчить" - разрешить вводить что угодно. 4. Скрыть лишние строки, оставить для начала одну и одну пустую над "Дополнительные услуги". 4. По событию изменения этих ячеек с операцией выполняем код - он сперва смотрит, не введён ли код из списка - если да, то меняет на описание операции. Можно делать тупо перебором - значений не много, тормозить не будет. Далее смотрит, нет ли ниже скрытой строки - если есть, то её открывает. Если данные стёрли - строку скрывает (хотя это можно делать вручную). Ну и в общем всё. Цену вытянет ВПР(). В таком случае можно писать и любые другие пары, и не имеющиеся в списке - название ввести даст, ценой можно затереть ВПР() - потом её можно восстановить из любой другой копированием. Привести бланк в исходный вид можно или вручную, или другим макросом по кнопке. Вроде не сложно получается, как думаете? Сделаете? Мне лениво...
webmoney: E265281470651 Z422237915069 R418926282008
|
20.01.2013, 13:44 | #3 | |
Пользователь
Регистрация: 18.08.2012
Сообщений: 10
|
Цитата:
Думаю, да, смогу это написать сама. Получится, что цикл будет работать, только при внесении изменений в диапазон? И еще оставить Проверку данных, чтобы человек, если не знает кода, мог выбрать из списка. Или я недопоняла Вас? |
|
20.01.2013, 13:54 | #4 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Ну да. Человек может выбрать из списка название, но может и забить туда код (макрос его меняет на название) - тогда цена подтянется сама формулой ВПР()
Или может записать вообще что-то другое и поставить свою цену - такое ведь тоже может понадобиться? Если это не нужно - можно такие данные макросом отсекать, или проверку сделать жёсткой и дать выбор и из названий, и из номеров (изменить список на втором листе). Если введён/выбран номер - его макросом меняем на название. Ну и цикл там нужен только для поиска названия по номеру по второму листу - строки с формулами заготавливаете заранее с запасом - у Вас ведь не будет неограниченное количество записей? Так же и сумму внизу можно сразу установить с первой строки по последнюю. Ну и ненужные строки изначально скрыть - открывать их макросом по событию изменения ячейки в строке над скрытой.
webmoney: E265281470651 Z422237915069 R418926282008
|
20.01.2013, 13:59 | #5 | |
Пользователь
Регистрация: 18.08.2012
Сообщений: 10
|
Цитата:
|
|
20.01.2013, 14:43 | #6 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Я думаю так будет проще, оптимальнее.
Можно конечно добавлять строки, но тогда нужно и макросом прописывать проверку ввода, и тянуть цену или ставить ВПР(). А главное - при любом изменении снова будут добавляться строки - например выбрали не то, меняем - снова добавилась строка. Или это нужно кодом отслеживать... В общем, всплывают всякие побочные проблемы. Но я не настаиваю, может быть кто-то сделает/придумает и другой вариант.
webmoney: E265281470651 Z422237915069 R418926282008
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выход из цикла (Delphi) | qadhhj | Помощь студентам | 2 | 20.03.2012 16:20 |
Выход из цикла | vandrouny | Общие вопросы Delphi | 5 | 27.05.2010 20:23 |
Выход из цикла | Сергей089 | Помощь студентам | 6 | 17.03.2010 16:44 |
выход из цикла | varelik | Общие вопросы Delphi | 13 | 24.12.2009 20:42 |
Выход из цикла | RIO | Помощь студентам | 1 | 21.04.2008 22:55 |