|
|
|
Бланк заказа
|
|||
|---|---|---|---|
|
#18+
Хлопцы, хочу продолжить свои поиски в реализации бланка заказа. В предыдущей задаче так и не нашел решение как закрепить область для прокрутки. Поэтому хочу пойти другим путем. Во вложении прикрепленный файл, по примеру расскажу как хочу сделать. 1. На странице "Бланк" содержится список артикулов "Agnez, Amaranta, Azalia" 2. При нажатии на любой артикул нужно взять имя этой ячейки (например у Agnez это "art_agnez") и найти на странице "Данные" по этому имени область "agnez" (все области я обвел жирной светло-синей рамкой). Найденную область на странице "Данные", разместить на странице "Бланк" под групповой колонкой "Характеристика". 3. Если на странице "Бланк" изменяется колонка "Количество" в ставленной области, то это количество должно записаться в соответствующие ячейки этой же области на странице "Данные". Скажите можно ли такое сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2011, 06:05 |
|
||
|
Бланк заказа
|
|||
|---|---|---|---|
|
#18+
Zixxx, при известном умении и упорстве - возможно все ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2011, 09:22 |
|
||
|
Бланк заказа
|
|||
|---|---|---|---|
|
#18+
_slan_, Это по определению понятно, а если конкретнее то какими методами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2011, 10:02 |
|
||
|
Бланк заказа
|
|||
|---|---|---|---|
|
#18+
Zixxx, что Вам конкретно непонятно? готов объяснить. Но делать за Вас нет желания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2011, 11:13 |
|
||
|
Бланк заказа
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2011, 11:25 |
|
||
|
Бланк заказа
|
|||
|---|---|---|---|
|
#18+
Zixxx, Отключи: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2011, 12:01 |
|
||
|
Бланк заказа
|
|||
|---|---|---|---|
|
#18+
Разобрался, теперь копирует. Но при выполнении операции видно как на время открывается другая страница и их нее копируются данные, т.е. видно мигание страниц. Как это можно исправть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2011, 12:03 |
|
||
|
Бланк заказа
|
|||
|---|---|---|---|
|
#18+
Zixxx, А есть какой-то резон действовать через буфер обмена? Если изучать объектную модель Excel по скриптам, записанным макрорекордером, то появляется сильный перекос в сторону объекта Selection -- он на самом деле вовсе не так вездесущ, как кажется макрорекордеру :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2011, 12:29 |
|
||
|
Бланк заказа
|
|||
|---|---|---|---|
|
#18+
kinotaurusZixxx, А есть какой-то резон действовать через буфер обмена? Если изучать объектную модель Excel по скриптам, записанным макрорекордером, то появляется сильный перекос в сторону объекта Selection -- он на самом деле вовсе не так вездесущ, как кажется макрорекордеру :) Я по другому не умею :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2011, 12:38 |
|
||
|
Бланк заказа
|
|||
|---|---|---|---|
|
#18+
Zixxx, Опиши словами, что должен делать макрос и какого рода данные находятся во втором столбце (адреса ячеек? имена диапазонов? ссылки на ячейки в других книгах?...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2011, 12:42 |
|
||
|
Бланк заказа
|
|||
|---|---|---|---|
|
#18+
ZixxxkinotaurusZixxx, А есть какой-то резон действовать через буфер обмена? Если изучать объектную модель Excel по скриптам, записанным макрорекордером, то появляется сильный перекос в сторону объекта Selection -- он на самом деле вовсе не так вездесущ, как кажется макрорекордеру :) Я по другому не умею :( можно тупо Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2011, 13:10 |
|
||
|
Бланк заказа
|
|||
|---|---|---|---|
|
#18+
Shamanus, или выключить на время обновление экрана: Application.ScreenUpdating=false потом, конечно, включить обратно это и ускорит и мигание уберет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2011, 14:12 |
|
||
|
Бланк заказа
|
|||
|---|---|---|---|
|
#18+
Shamanus, Там, по-моему, хитрее: target хранит не само значение, а в каком-то виде адрес, по которому нужно взять значение. Если это адрес ячейки, то легко: Код: plaintext 1. Есть у меня подозрение, что задачу ТС можно реализовать вообще без кода: рядом с ячейкой D4 выпадающий список и функция INDIRECT... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2011, 14:15 |
|
||
|
Бланк заказа
|
|||
|---|---|---|---|
|
#18+
_slan_, Решение, имхо, не очень хорошее: во-первых, затычка, во-вторых, если где-то что-то срубится по дороге, то так и останемся со ScreenUpdating=False... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2011, 14:16 |
|
||
|
Бланк заказа
|
|||
|---|---|---|---|
|
#18+
Zixxx, Пардон, я зацепился за код, не заметив, что приложен файл :(. А опиши исходную задачу: для чего должен применяться этот файл? Правильно ли я понимаю: пользователь выделяет элемент в списке на листе Бланк, смотрит на появившиеся характеристики справа, решает, нужно ли ему это и в каком количестве -- а на листе Данные при этом формируется заказ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2011, 14:41 |
|
||
|
Бланк заказа
|
|||
|---|---|---|---|
|
#18+
kinotaurus_slan_, Решение, имхо, не очень хорошее: во-первых, затычка, во-вторых, если где-то что-то срубится по дороге, то так и останемся со ScreenUpdating=False... про затычку - не понял что может срубиться при copy-paste ? ну и on error application.screenupdating=true.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2011, 15:33 |
|
||
|
Бланк заказа
|
|||
|---|---|---|---|
|
#18+
_slan_, Срубиться может как угодно и на чем угодно, как показывает практика :) Даже на копипасте :) Затычка -- в том смысле, что код можно написать без активации листов и объекта Selection, и тогда Excel не будет мигать при выполнении, но мы вместо этого код не меняем, а глобально отрубаем обновление экрана. Это как если у тебя короткое замыкание, а ты вместо ремонта розетки отрубаешь подстанцию... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2011, 15:42 |
|
||
|
Бланк заказа
|
|||
|---|---|---|---|
|
#18+
kinotaurusShamanus, Там, по-моему, хитрее: target хранит не само значение, а в каком-то виде адрес, по которому нужно взять значение. Если это адрес ячейки, то легко: Код: plaintext 1. Есть у меня подозрение, что задачу ТС можно реализовать вообще без кода: рядом с ячейкой D4 выпадающий список и функция INDIRECT... у таргета тип range тип Range адрес хранить не может ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2011, 18:28 |
|
||
|
Бланк заказа
|
|||
|---|---|---|---|
|
#18+
тип Range адрес хранить может. Range.Address. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2011, 18:30 |
|
||
|
Бланк заказа
|
|||
|---|---|---|---|
|
#18+
kinotaurusкод можно написать без активации листов и объекта Selection, и тогда Excel не будет мигать при выполнении, но мы вместо этого код не меняем, а глобально отрубаем обновление экрана. Это как если у тебя короткое замыкание, а ты вместо ремонта розетки отрубаешь подстанцию...Я вот позволю себе не согласиться от отказа в отключении обновления экрана. Т.к. даже если нет Selection, но присутствует множественное изменение значения ячеек - то код будет РЕАЛЬНО тормозить. Притом это будет весьма ощутимо, если, к примеру, заполнять массив ячеек более 2000. Пусть там не будет ни одного .Select-а - код будет выполняться очень долго. А если отключить обновление экрана - то код выполнится за пару секунд. Это я написал для Zixxx в первую очередь. Чтобы не отметался метод отключения экрана, как неконструктивный. Равно как и не пихался везде. Надо все использовать в меру и исходя из выполняемых задач и объемов. И обработка ошибок тоже является неотъемлемой частью разработки приложений и отлов всех возможных ошибок должен быть на стадии разработки. При выполнении кода ошибки должны перехватываться и тем или иным способом обрабатываться. Пользователь в любом случае не должен видеть стандартных сообщений об ошибке, выдаваемых VBA. Все сказанное выше: лично мое мнение, которого я придерживаюсь в разработке своих приложений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2011, 18:43 |
|
||
|
Бланк заказа
|
|||
|---|---|---|---|
|
#18+
big-duke, это не стандартная маска возвращаемая типом Range, стандартная Value, а в контексте данной задачи, неверно, что в Value хранится адрес. На эту ошибку kinotaurus я и указал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2011, 19:19 |
|
||
|
Бланк заказа
|
|||
|---|---|---|---|
|
#18+
The_Prist, Согласен. Shamanus, Да, оплошал -- не сам Target, а Target.EntireRow.Cells(2). Код Код: plaintext 1. 2. 3. (я когда писал свои комменты, еще не видел эксельник; там не адреса -- там имена диапазонов) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2011, 20:41 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=37110649&tid=2177179]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
191ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 272ms |
| total: | 537ms |

| 0 / 0 |
