Перенос данных и подсчет из listbox в listbox - VBA
Формулировка задачи:
Здравствуйте, столкнулся задачей которую необходимо сделать в ексельке с VBA .
Если таблица из 6 столбиков в которой указаны данные (на фото будет видно).
У меня получилось сделать форму и запихнуть туда поисковую строку которая ищет по данные по одному из столбцов.
Проблема состоит в том что я хочу путем выделения нужной строки, типа (заправка или восстановление) и количества, перенести данные из листбокса1 в листбокс2 и вывести результат суммы работы в лейбл.
Как мне осуществить перенос данных?
На данный момент поиск реализован вот так
Листинг программы
- Private Sub CommandButton1_Click()
- Unload Me
- End Sub
- Private Sub CommandButton2_Click()
- Dim RW As Long
- RW = ListBox1.List(ListBox1.ListIndex, 0)
- End Sub
- Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
- Dim RW As Long
- RW = ListBox1.List(ListBox1.ListIndex, 0)
- ThisWorkbook.Worksheets("Лист3").Activate
- ActiveSheet.Range(Cells(RW, 1), Cells(RW, 6)).Select
- End Sub
- Private Sub OptionButton1_Click()
- End Sub
- Private Sub tbName_Change()
- Dim LastRow As Long, i As Long, x As Long, Arr()
- Me.ListBox1.Clear
- With Sheets("Лист3")
- LastRow = .Cells(Rows.Count, 1).End(xlUp).Row
- Arr = .Range(.Cells(2, 1), .Cells(LastRow, 6)).Value
- End With
- With ListBox1
- For i = 1 To UBound(Arr)
- If UCase(Arr(i, 2)) Like UCase(Me.tbName) & "*" Then
- .AddItem ""
- .List(x, 0) = i + 1
- .List(x, 1) = Arr(i, 1)
- .List(x, 2) = Arr(i, 2)
- .List(x, 3) = Arr(i, 3)
- .List(x, 4) = Arr(i, 4)
- .List(x, 5) = Arr(i, 5)
- .List(x, 6) = Arr(i, 6)
- x = x + 1
- End If
- Next
- End With
- End Sub
Решение задачи: «Перенос данных и подсчет из listbox в listbox»
textual
Листинг программы
- Private Sub CommandButton2_Click()
- Dim lbr1 As Long, lbr2#
- lbr1 = ListBox1.ListIndex
- lbr2 = Val(ListBox2.ListCount / 4)
- 'проверяем OptionButton на заполнение
- 'If (OptionButton1.Value + OptionButton2.Value) = 0 Then MsgBox "Выберете Заправка или Восстановление": Exit Sub
- For i = 1 To 4
- ListBox2.AddItem ""
- ListBox2.List(lbr2, i - 1) = ListBox1.List(lbr1, i)
- Next
- ListBox2.List(lbr2, 5) = IIf(OptionButton1.Value, OptionButton1.Caption, OptionButton2.Caption)
- ListBox2.List(lbr2, 4) = ListBox1.List(lbr1, IIf(OptionButton1.Value, 5, 6))
- Sum = Sum + ListBox2.List(lbr2, 4)
- Me.Label9.Caption = Sum
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д