Страницы: 1
RSS
Возможно ли через свойства index связать значение combobox с диапазоном книги?
 
Добрый день.
Помогите в решении проблемы.
Создаю файл коммерческое предложение с пользовательской формой для поиска и заполнения номенклатуры и еще некоторых параметров из файла с прайс листом.
В  пользовательской форме предполагается выбор по одному из параметров. Либо по артикулу, либо по названию (к сожалению перекрестный поиск пока для меня сложно на vba).
В форме создано 2 соответствующих комбобокса, В них из файла с прайс листом выводятся списки с артикулом и названием. По артикулу поиск организован путем сравнения выбранного значения из комбобокса и поиска его в книге с прайсом. После того как найдено нужное также подтягиваются дополнительные данные путем смещения от выбранной ячейки (название, единица измерения, ставка НДС и цена).

Проблема заключается когда я хочу организовать поиск по названию. Название не уникально и может повторятся. Поэтому вариант как с артикулом не подходит. Есть идея организовать поиск через index. В комбобоксе каждому наименованию присваивается уникальный индекс. Вот если бы взять этот индекс и сопоставить его со столбцом наименование в прайс листе и далее подтянуть уже все необходимые данные.

Но к сожалению знаний по vba у меня не достаточно, чтобы это реализовать.

Возможно я в целом не правильно вижу решение данной задачи.
 
Можно для Наименований использовать не ComboBox, а ListBox, в котором можно вывести несколько столбцов из Прайса, из которых будет видно чем одно одинаковое Наименование отличается от другого такого-же. В Вашем Прайсе это Цена (с трудом представляю ситуацию, что будет выбран товар с более высокой ценой, при прочих равных)  :D
Можно сделать ComboBox'ы взаимозависимыми. Т.е. при выборе Наименования в ComboBox Артикулов будут подтягиваться соответствующие им артикулы.
Ну и т.п.
Согласие есть продукт при полном непротивлении сторон
 
В примере цены не актуальны, предлагаю на них не обращать внимание. На самом деле название "Линзы интраокулярные enVista" встречается 2 раза (абсолютно идентичные) при этом у них разные артикулы. Если коротко то разные диоптрии.
Возможно через ListBox это действительно лучше вывести название и артикул.
ComboBox'ы взаимозависимыми это то что было бы вообще классно, но пока мне не хватает реальных знаний vba как это реализовать.
Плюс в данном примере не все позиции из прайс листа. Есть некоторые позиции которые эксель в упор не видит поиском. То есть в названии, в рамках одной ячейки используется несколько переносов. Есть вероятность что просто не будут выводиться артикулы. Поэтому и начал искать связку через индексы.
 
Цитата
Алексей написал:
Поэтому и начал искать связку через индексы.
Может поможет
Код
Private Sub CommandButton3_Click()
  If Not IsEmpty(Me.ProductName.Value) Then
    MsgBox "Выбрано наименование: " & Me.ProductName.Value & vbCrLf & _
            "Номер индекса: " & Me.ProductName.ListIndex & vbCrLf & _
            "Номер строки в Прайсе: " & Me.ProductName.ListIndex + 9
  End If
 PodborTovar.Hide
End Sub
Согласие есть продукт при полном непротивлении сторон
 
Отлично, спасибо. Буду пробовать!
Страницы: 1
Наверх