Страницы: 1
RSS
Ограничение ввода значений в ячейки списка
 
Уважаемый Дамы и Господа,  
Прежде всего поздравляю Вас с Новым Годом!  
 
Требуется помощь специалистов!  
В файле все пояснения, кратко изложить суть вопроса не смог.  
 
Задача на первый взгляд не сложная, но у меня что-то никак не получается.  
 
С уважением,  
Александр
 
{quote}{login=gaz-polutorka}{date=01.01.2011 12:34}{thema=Ограничение ввода значений в ячейки списка}{post}Задача на первый взгляд не сложная, но... {/post}{/quote}  
... но требующая написания целой кучи проверок. Посмотрите - может что и пропустил.  
С Новым Годом!
 
Нашёл ошибки - исправляю.
 
Проверьте.
 
Да! Вот это круто вышло!  
 
Теперь пойду с книгой и кодом изучать что где чего значит и как теперь применить уже в реальной таблице, а не в примере!  
 
Спасибо большое!
 
Уважаемый Юрий М,  
 
Нашел некоторые неточности, как поправить незнаю.  
 
1. Если ввести несколько цифр, а потом выделив все нажать DEL, то цифры удаляются, а сумма не обновляется. Сумма обновляется только если по одной ячейке DEL делать.  
Если можно поправьте пожалуйста.  
 
2. Почемe-то не вводятся текстовые значения если даже уже удалил числовые.  
Ругается и пишет сообщение будто в списке имеются числовые значения.  
 
С уважаением,  
 
Александр
 
Что нашёл - исправил. Сразу признаю - код не оптимальный. Нужно целиком переделывать - много получилось лишнего, но что-то нет желания :-) Просто добавил кое-что. Проверьте.  
P.S. Если предусматривается ввод пустого значения, то проще добавить его (пусто) в диапазон контролируемых значений. Так и сделал. Этот список желательно сделать на другом листе.
 
Спасибо за помощь, буду своими силами оптимизировать!  
 
Если у Вас будет возможность оптимизировать его позже, то буду очень признателен!  
 
С уважением,  
Александр
 
Уважаемый Юрий М и форумчане!  
Посидел, покрапел и родил то, что я хочу но вот только очень по рабоче крестьянски.    
 
Прошу помочь теперь уже оптимизировать моё творение.  
Построил решение задачи на формулах и немного воспользовался VBA.  
 
Оптимизировать прошу формулу по возможности и как прописывать в VBA,  
Поскольку как в примере таких диапозонов по 10 строчек в рабочем файле около 1000 и хотелось бы чтоб не очень грамостко было и считало быстро.  
 
Я понимаю что это не просто, но постарался сделать всё что возможно чтоб решить данную задачу!  
 
Спасибо большое!  
С уважением,  
Александр
 
Вводим цифры - получаем ошибку.
 
Да всё верно.  
Там переписаны условия.  
При вводе цифр сумма не должна превышать 12!  
 
Как только превышает, то возникает ошибка!
 
Список работает по следующим ограничениям:  
1. Вводимые значения ограничены столбиком желтым "P"  
2. Сумма по вводимым значениям не может превышать 12.  
3. Одновременно не может быть введено и текст и число.  
4. И наконец в списке не может существовать 2 текстовых значения одновременно.  
 
При невыполнении хотя бы одного из этих условий, формула возвращает значение ЛОЖЬ, VBA реагирует на значение ЛОЖЬ и выдает сообщение "ошибка", и удаляет последнее введенное число или букву пользователем.
 
{quote}{login=gaz-polutorka}{date=02.01.2011 01:04}{thema=}{post}Да всё верно.  
Там переписаны условия.  
При вводе цифр сумма не должна превышать 12!  
 
Как только превышает, то возникает ошибка!{/post}{/quote}  
Столбец пустой. Ввожу единицу - сразу ошибка и нет суммы.
 
Последний файл post_188002.xls  
Данные надо вводить в столбик B2:B10  
Попробовал вводить 1 в каждую ячейку и никаких ошибок!  
Не знаю почему у Вас возникает ошибка, проверьте может Вы не тот файл скачали, тут в теме их много.  
Попробуйте выбирать при помощи списка, а не вводом в ячейку.  
 
Ещё вариант если Вы используете Excel 2003, у меня 2007.  
Длина формулы (если покрутить ниже) - 393 символа, может быть из-за этого неработает?!?  
 
Вот именно формулу мне и надо оптимизировать! Или вообще исполнение в целом!
 
У меня ошибка (2003). Макрос отменяется?
 
Ну почему же сразу отменяется? Я просто подготовил решение которое хотел бы получить только более адекватным методом. Моя формула, это монстр неповоротливый и если её размножить на много диапозонов, то файл будет весить около 5МБ и конечно тормозить начнет.  
 
Если есть возможность написать макрос, который хорошо будет делать тоже самое и главное чтоб он был применим на много диапозонов, я буду очень признателен.  
 
Заранее спасибо!
 
{quote}{login=gaz-polutorka}{date=02.01.2011 09:06}{thema=}{post} макрос, который хорошо будет делать тоже самое и главное чтоб он был применим на много диапозонов{/post}{/quote}  
Вот как раз это и смущает - 1000(!) диапазонов.
 
Ну вот и меня тоже смущает.  
Давайте вместе подсчитаем=))  
 
строчки - это заказы. Их 10. (т.е. обрабатываемый диапозон = 10.  
При этом каждый диапозон рассчитан на каждый день.  
В среднем в месяце 30 дней, поэтому на одного рабочего 30 диапозонов.  
Всего рабочих по программе забито 339 человек., умножаем 339*30 и получаем 10170 вот таких диапозонов=))))  
 
Так что с тысячей я наврал в 10 раз.  
 
Но поскольку запас большой сделан по просьбе трудящихся, реально будет использоваться 60%, поэтому хотелось бы чтоб фомула была поворотливая и расторопная, ну или макрос конечно. Мне кажется можно упростить не вводя разные сообщения об ошибке. Сообщения типа ОШИБКА я думаю вполне достаточно.
 
{quote}{login=gaz-polutorka}{date=02.01.2011 11:25}{thema=}{post}Мне кажется можно упростить не вводя разные сообщения об ошибке. Сообщения типа ОШИБКА я думаю вполне достаточно.{/post}{/quote}  
Текст сообщения (его длина) никак не скажется на быстродействии. А вот подумать о реорганизации данных стоит. Например, по строкам: одна строка - это один диапазон.
 
Спасибо за подсказку, подумаю=))
 
А чего тут думать? :-) 10 столбцов с данными (заказы), 11-ый - сумма. Контролировать легче, строк хватит даже в 2003...
 
Предлагаю примерно такую (см. файл) организацию данных. Ещё не все проверки написаны. Если есть смысл продолжать - предлагаю перенести переписку в личку (почта): думаю, что другим тема не очень интересна.
Страницы: 1
Читают тему
Наверх