|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.06.2010, 16:35 | #1 |
Новичок
Джуниор
Регистрация: 31.05.2010
Сообщений: 2
|
Простановка наличия средствами VBA
Всем привет!
Помогите, пожалуйста, разобраться со следующей задачей. Итак, есть прайс-лист примерно такого вида: Нас интересует колонка "Наличие на складе". "+" или "-" проставляются в зависимости от того, сколько этого товара на складе лежит - если <5, то не считается, что этот товар есть. Информация о наличии, как несложно догадаться, предоставляется складом. Вот в таком виде: Наименование товаров несколько отличается, причем они идут не в таком порядке, как в прайс-листе. Задача состоит в том, чтобы написать макрос по такому алгоритму: Цикл по всем строкам прайса: 1. Выбрать наименование товара в прайсе 2. Найти аналогичную позицию в инфе со склада 3. В инфе просмотреть остаток по этой позиции 4. Если остаток >=5, то в прайсе у аналогичной позиции в столбце "Наличие" проставляется "-", иначе знак "+". Алгоритм простой, но в реальности все усложняется тем, что наименования позиций в прайсе и в инфе не идентичны и идут не в таком же порядке. Раньше мне не приходилось работать с VBA, заставила суровая необходимость, ибо вручную это делать просто очень нерационально и долго. Пожалуйста, подскажите пути реализации. Последний раз редактировалось Julliet; 03.06.2010 в 16:39. |
03.06.2010, 16:53 | #2 |
Форумчанин
Регистрация: 24.06.2008
Сообщений: 516
|
При такой организации пожалуй не получиться...
Можно сделать все! Было бы время, да деньги...
|
03.06.2010, 17:10 | #3 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Ну почему же, макросом можно найти, я делал, из этого списка только "D40 + 2 аккум." смущает, если во втором списке не будет "2", "+" и "аккум.", то незнаю как... Хотя "D5000 кит" тоже портит картину, если я правильно понял.
А делал так - разбиваю в массив строку по пробелам, ищу первый элемент массива во второй таблице, если нашли - ищем второй в этой же ячейке и т.д. Всё совпало - копируем, нет - ищем дальше. Но по этому примеру можно тупо искать только первое слово.
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 03.06.2010 в 17:13. |
03.06.2010, 17:17 | #4 |
Форумчанин
Регистрация: 24.06.2008
Сообщений: 516
|
Так я о чем. системы нет..
Можно сделать все! Было бы время, да деньги...
|
04.06.2010, 07:29 | #5 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Посмотрите вложение. Откройте оба файла и запустите макрос "Main". Реализован поиск для совпадений не одинаково заполненных ячеек только для тех случаев, которые Вы представили в примере. Если есть другие варианты - прикрепите файл с примерами всех возможных. Лучше, если в этом примере совпадающие (на Ваш взгляд) ячейки будут по парно окрашены.
Чем шире угол зрения, тем он тупее.
Последний раз редактировалось SAS888; 04.06.2010 в 08:00. |
04.06.2010, 11:15 | #6 | |
Новичок
Джуниор
Регистрация: 31.05.2010
Сообщений: 2
|
Уважаемый SAS888!
Очень-очень Вам благодарна, все просто замечательно работает! Вы - мой спаситель))) Задача решена просто блестяще! Что касается Цитата:
Ваш чудесный макрос я добавлю в нужные прайсы самостоятельно, главное - что о работе вручную можно забыть, как о страшном сне) Upd. Погорячилась с самостоятельным добавлением) Поразбиралась в коде... Так как в VBA новичок, наверняка неправа где-то, укажите пожалуйста на ошибки.. Итак, код: Код:
Код:
Код:
дальше Код:
Код:
Код:
дальше подстановка +/- и конец. Вот, прикрутила в реальный прайс, i задала как номер строки, с кот. надо начинать поиск, и минусы с плюсами прекрасно так проставились. но ДО той строки, с кот. они должны были начинать проставляться. Где я ошиблась? Последний раз редактировалось Julliet; 04.06.2010 в 17:34. |
|
07.06.2010, 08:06 | #7 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Посмотрите предложенный ранее макрос с подробными комментариями. Возможно, что это даст ответы на Ваши вопросы.
Код:
Чем шире угол зрения, тем он тупее.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вычисление экспоненты средствами VBA | fs444 | Microsoft Office Excel | 10 | 30.12.2009 10:42 |
Неразрывный пробел средствами VBA | tolikman | Microsoft Office Word | 5 | 23.03.2009 05:11 |
Сжатие рисунков средствами VBA | EducatedFool | Microsoft Office Excel | 1 | 17.01.2009 19:12 |
Условное форматирование средствами VBA | Acro | Microsoft Office Excel | 5 | 01.12.2008 16:40 |
Макрос VBA EXCEl - простановка в ячейку номера страницы | Обыватель | Microsoft Office Excel | 1 | 14.02.2008 12:49 |