|
|
|
Проверка по трём критериям
|
|||
|---|---|---|---|
|
#18+
Задача такая на Excel 2003- есть три дистрибутора у которых имеются свои водители, по три водителя на каждого. При оформлении заказа в бланк вводится фамилия дистрибутора и фамилия водителя, надо макросом проверить соответствует ли фамилия водителя своему дистрибутору, если нет то месиджбоксом вывести сообщение об не соответствии. Я хотел сделать так - If distr="name" then if driver<> "drname1" or "drname2" or "drname3" then msgbox("Проверте соответствые") я точно не знаю как правильно записать это условие т.е. все водители проверялись на соответствие с дистрибутором макросом. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2009, 12:46 |
|
||
|
Проверка по трём критериям
|
|||
|---|---|---|---|
|
#18+
а зачем макросом?... если же все таки хотите макросом, просто приделайте каждому водителю в конце цифру, соответствующую номеру дистрибъютора (которому тоже можете пределать цифру) и дальше сверяйте цифры в конце. Например: Дистрибъюторы: Петров = Петров1 Иванов = Иванов2 ... Водители: Иванченко = Иванченко1 Сидоров = Сидоров1 ... Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2009, 13:08 |
|
||
|
Проверка по трём критериям
|
|||
|---|---|---|---|
|
#18+
Отдельно проверять водителя не пойдёт, потому что если заказ выписан например на второго водителя или на третьего тогда проверка уже на первого водителя выдаст сообщение об ошибке ввода. Надо проверить всех "сразу" - или водител1 или водител2 или водител3 и так для других дстрибуторов. Если код пойдёт для одного дстрибутора то она будет работать и на других. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2009, 14:43 |
|
||
|
Проверка по трём критериям
|
|||
|---|---|---|---|
|
#18+
Ну так а я что говорю: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. код не проверял, но идея должна быть понятной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2009, 15:08 |
|
||
|
Проверка по трём критериям
|
|||
|---|---|---|---|
|
#18+
Другой вариант - меняем validation E4 в зависимости от значения ячейки D4 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. водители - m1, m2, m3, h1, h2, h3 Добавить третью третию третюю третьую тьфу группу №3 :)... Других вариантов быть не может (если только copy-paste)... Подправить по вкусу :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2009, 15:51 |
|
||
|
Проверка по трём критериям
|
|||
|---|---|---|---|
|
#18+
Да, на D4 тоже можно проверку навесить, тогда заполнить можно всё выбирая из выпадающего списка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2009, 15:56 |
|
||
|
Проверка по трём критериям
|
|||
|---|---|---|---|
|
#18+
только что еще придумал, наверное самый простой идея в том, что бы объеденить имя дистрибъютора и водителя а затем просто проверить в массиве: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2009, 16:49 |
|
||
|
Проверка по трём критериям
|
|||
|---|---|---|---|
|
#18+
Вроде получилось удобно - добавил ещё примочку - если кликнуть по дистрибютору, водила сразу пропадает :) Т.е. больше нельзя заменить дистрибютора, но оставить прежнего чужого водилу. Ну и список дистрибюторов и водителей легко редактировать - они в таблице. Вариант рабочий, см. нижнюю часть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2009, 18:23 |
|
||
|
Проверка по трём критериям
|
|||
|---|---|---|---|
|
#18+
В первом файле осталось удаление водилы при смене листа, лучше см. этот файл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2009, 18:25 |
|
||
|
Проверка по трём критериям
|
|||
|---|---|---|---|
|
#18+
Спасибо всем! Я сделал так - добавил счётчик, если несовпадение имени водителя то счётчик=счётчик+1, в конце если счётчик=3 (т.е. не совпали все три имени) то выходит сообщение об ошибке ввода. Ваши варианты посмотрю, Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2009, 10:12 |
|
||
|
Проверка по трём критериям
|
|||
|---|---|---|---|
|
#18+
Можно и так, более компактно If distr = "name" Then If (driver <> "водит1") And (driver <> "Водит2") And (driver <> "Водит3") Then MsgBox ("Проверьте имя водителя") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2009, 10:28 |
|
||
|
Проверка по трём критериям
|
|||
|---|---|---|---|
|
#18+
Можно и так, без VBA :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2009, 09:52 |
|
||
|
Проверка по трём критериям
|
|||
|---|---|---|---|
|
#18+
viktturМожно и так, без VBA :) ??? А где Ваш вариант? Спасибо, что в моём красоту навели, конечно.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2009, 09:59 |
|
||
|
Проверка по трём критериям
|
|||
|---|---|---|---|
|
#18+
-Вставка-Имя-Присвоить Для F13: -Данные-Проверка-Список -Условное форматирование ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2009, 10:03 |
|
||
|
Проверка по трём критериям
|
|||
|---|---|---|---|
|
#18+
Ах да, заметил - indirect добавилось... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2009, 10:04 |
|
||
|
Проверка по трём критериям
|
|||
|---|---|---|---|
|
#18+
Да, так конечно лучше, но не кардинально, согласись... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2009, 10:10 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=36311777&tid=2178846]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
170ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
83ms |
get tp. blocked users: |
2ms |
| others: | 215ms |
| total: | 524ms |

| 0 / 0 |
