Страницы: 1
RSS
Подстановка в UserForm выборочных данных, Подставляются только первые из выпадающего списка.
 
Братцы, доброго времени суток!
Похожее на нижеописанную операцию я уже сделал с вашей помощью несколько дней назад, НО между двумя листами одной книги. Это было для рабочего файла, для работы моей, а вот попробовал "для себя, для души" сделать такую же операцию подстановки данных, НО УЖЕ в userform - не получается. Как в том анекдоте, чую, что пол-литра, а сказать не могу.()) Подсобите в очередной раз. :cry:

В-общем, выдрал кусочек из файла, чтобы уложиться в ограничения по размеру/весу файла.
Есть лист "Продажи", на листе умная таблица "Продажи_tb". Также есть форма "Sales", которую можно открыть, зайдя в окно vba-редактора. Есть "Модуль1" со всякими сварганенными мной макросами. Чего же душе моей хочется? Ага, при открытии формы в "красном" блоке в левом комбобоксе № счета cbx_NumVozv агрегируются номера счетов из таблицы "продажи_tb". После выбора в нем какого-либо счета в cbx_tovarVozv заливаются наименования товаров, входящих в этот счет. И ТУТ начинаются мои страдания.(( При выборе ПЕРВОГО товара в этом списке в ячейки формы подставляются требуемые данные, А ВОТ при выборе второго или любого другого последующего в списке товара ничего не происходит, т.е. нужные данные не подставляются. Меня, конечно же, терзают смутные сомнения относительно примененного метода FIND, но я пробовал и с FOR i , но то ли руки кривые (что близко к истине), то ли в данном случае нужен совсем другой подход.
Друзья, подскажите, как решить вот эту задачку, чтобы подставлялись данные не только при выборе первой позиции во втором выпадающем списке, НО И при выборе любой позиции из этого списка.
Надеюсь, смог объяснить суть своей проблемы.
Изменено: Эльбрус - 18.06.2019 04:21:58
 
Затык в следующем
Для процедуры FillUpgradeVozv
В этой строке
Код
Set Rng = .Columns(1).Find(what:=Sales.cbx_NumVozv, LookIn:=xlValues, LookAt:=xlWhole)
Вы находите Номер заказа и при нахождении строки с номером, переходите на 6 столбцов правее, для сравнения Описания товара в таблице с выбранным описанием в Форме
Код
If Rng.Offset(0, 6) = Sales.cbx_tovarVozv Then
но проблема в том, что метод .Find всегда возвращает ячейку с ПЕРВЫМ найденным значением номера и ваш Rng.Offset(0, 6) всегда равен Описанию товара, расположенному напротив первого Номера из всего списка номеров
Вам поможет цикл по номерам со сравнением строк с описанием или метод .FindNext (по ссылке есть пример его использования)

Ваш код с .FindNext может выглядеть примерно так
Скрытый текст
Изменено: Sanja - 18.06.2019 08:33:42
Согласие есть продукт при полном непротивлении сторон
 
Sanja, огромнейшее Вам спасибо!
Всё работает просто отлично.
Успехов Вам во всём!
Страницы: 1
Наверх