Я создаю пользовательскую форму для инвентаря, который физически считает инвентарь для целей аудита. Текущий процесс на бумаге - я бы хотел поместить его на планшет.
Цель:
1) В форме отображается одна строка с указанием местоположения, продукта, количества и описания. 2) Если количество верное, пользователь нажимает «правильно» и появляется следующий пункт. 3) Если количество неверное, пользователь вводит наблюдаемое количество, которое записывается в столбец J соответствующей таблицы данных. 4) Параметр прокрутки. go вперед и назад, если пользователь хочет проверить / переработать элемент
Private Sub CommandButton1_Click()
'GET DATA FROM TABLE
ListBox1.ColumnCount = 4
ListBox1.RowSource = "A2:D500"
End Sub
'IF QTY IS CORRECT, NEXT ROW
Private Sub CommandButton_QtyCorrect_Click()
Call SpinButton1_SpinUp
End Sub
'IF QTY DOESN'T MATCH, USER KEYS CORRECT
Private Sub CommandButton2_Click()
Range("K1") = TextBox2_Qty.Value
TextBox2_Qty.Value = ""
End Sub
Private Sub ListBox1_Click()
'DISPLAY DATA TABLE
End Sub
Private Sub SpinButton1_SpinDown()
If ListBox1.ListIndex > 0 Then
ListBox1.Selected(ListBox1.ListIndex - 1) = True
End If
End Sub
Private Sub SpinButton1_SpinUp()
If ListBox1.ListIndex + 1 < ListBox1.ListCount Then
ListBox1.Selected(ListBox1.ListIndex + 1) = True
End If
End Sub
Private Sub TextBox2_Qty_Change()
'USER OVERWRITE
End Sub
Вопросы:
1) При текущей настройке все строки заполняют ListBox. Как получить одну строку за раз для отображения?
2) Когда текущая строка отображается в ListBox, как мне записать соответствующую строку в столбце J в случае несоответствия?
Ответы
1) Решено Ральфом С. ниже.
2) Решение:
Private Sub AdjustButton_Click()
'IF QTY DOESN'T MATCH, USER KEYS CORRECT
Range("J" & SpinButton1.Value) = TextBox2_Qty.Value
TextBox2_Qty.Value = ""
End Sub