Всем доброго дня! Нужен ваш совет и помощь. В столбце "А" я указываю тоннаж , нужно чтобы в столбце "B" автоматом от тоннажа проставлялась цена, Хочется воспользоваться средствами VBA ,чтобы зашить эти цены и не пользоваться функцией ВПР.
При вводе значения в ячейку, нужно автоматическое появление значение в соседней ячейке
|
13.06.2014 11:02:08
|
|
|
|
|
|
13.06.2014 11:07:08
|
|||
|
|
|
|
13.06.2014 11:13:38
Правильно Михаил говорит - не нужно "зашивать": создайте таблицу соответствий на соседнем листе и с помощью VBA забирайте оттуда данные.
|
|
|
|
|
|
13.06.2014 11:22:47
Вариант в файле.
|
|
|
|
|
|
13.06.2014 11:48:04
Если поменяется в ее в VBA сам и поменяю
|
|
|
|
|
|
13.06.2014 11:51:05
Юрий Спасибо , вариант то что надо, а чтобы в сам макрос цены залить такой вариант можете показать, чтобы не было другого листа.
|
|
|
|
|
|
13.06.2014 12:00:32
|
|||
|
|
|
|
13.06.2014 12:05:39
Спасибо за совет, а если добавить дополнительное условие имя подрядчика пример прикладываю Лист 3 имена подрядчиков Под1 , Под2 , ПОд3
|
|
|
|
|
|
13.06.2014 12:10:46
Вот пример
|
|
|
|
|
|
13.06.2014 12:10:50
Если уж "зашить" очень хочется, то можно так:
|
|||||
|
|
|
|
13.06.2014 12:19:21
Юрий М, Да я начинал также через Case забивать понял , что долгая история.
|
|
|
|
|
|
13.06.2014 12:20:09
|
|||
|
|
|
|
13.06.2014 12:23:05
=== Посмотрел Ваш второй файл - плохой пример: например, тоннажу 10 соответствуют несколько подрядчиков - кого из них считать за "правильного"? Это я просто ради интереса спрашиваю... |
|||
|
|
|
|
13.06.2014 12:27:51
Может вариант есть другой поэтому и интересуюсь и я не знал как сделать чтобы сразу значение появлялось. Я в листе 1 добавил столб для подрядчик который нас интересует. Если поможете с этим вопросом , тему можно будет закрывать.
|
|
|
|
|
|
13.06.2014 12:30:50
Да Вы даже код не сохранили в новом примере. Вам лень? Мне тоже.
|
|
|
|
|
|
13.06.2014 12:31:44
Мне не лень сейчас попробую еще раз у меня файл не загружался сюда с кодом
|
|
|
|
|
|
13.06.2014 12:32:32
|
|||
|
|
|
|
13.06.2014 12:34:22
Ваш первый код.
|
|
|
|
|
|
13.06.2014 12:41:00
|
|||
|
|
|
|
13.06.2014 12:58:17
|
|||
|
|
|
|
13.06.2014 12:58:57
Как вариант - сперва найти в строке подрядчика, затем (если его нашли) искать в этом столбце ниже тоннаж (диапазоны поиска в коде можно ограничить, чтоб лишнего не найти, ну или оперативно его определить).
|
|
|
|
|
|
13.06.2014 13:22:44
Юрий М, Спасибо Огромное.
На последок Юрий посоветуйте книгу по макросам на данный момент я закончил "Мэтью Харрис программирование MS Excel за 21 день". |
|
|
|
|
|
13.06.2014 13:29:00
Обратите внимание на совет Игоря (Hugo) по поводу ограничения диапазона: для тоннажа 10 и Подрядчика1 будет найдено значение "12/18" в ячейке D289.
По литературе: я в своё время читал Уокенбаха, многие советуют Гарнаева. Ну лучший учебник - форум: смотрите чужие решения, анализируйте их. "Полезняшки" сохраняйте у свою "Копилку". |
|
|
|
|
|
13.06.2014 13:38:27
Пока Юрий писал код, я немного подглядывал
Я бы всё лишнее убрал ниже данных, через пустую строку, а искал тоннаж в intersect(Rng.currentregion, .Columns(iColumn)) Ну как-то так. А изменение удобнее отслеживать по тому столбцу, который последний заполняется, или по обоим - при условии что соседний уже заполнен. |
|
|
|
|
|
13.06.2014 15:20:23
Всем Спасибо!
|
|
|
|
|
|
05.11.2025 13:30:55
Юрий М
Но обнаружилась ошибка, своими силами не удаётся решить, помогите пожалуйста! При вставке новой строки ругается на: Target.Offset(0, 1) = Rng.Offset(0, 1)
Изменено: - 05.11.2025 13:32:21
|
|
|
|
|
|
05.11.2025 13:38:37
|
|||
|
|
|
|
05.11.2025 14:04:10
Спасибо Вам большое! Сам бы не смог.
я копался не в ту сторону! Буду изучать countLarge спасибо! |
||||
|
|
|
|||
Читают тему