Здравствуйте. Если в форме оставить возможность выбирать в listbox только одно значение, то данные заносятся в таблицу и по нажатию на строке таблицы снова открывается форма с выбранным значением в listbox. Но если в listbox поставить выбор нескольких значений, то все сразу перестает работать. Как сделать так чтобы была возможность выбора нескольких значений, чтобы они вставлялись в таблицу и по нажатию на строке таблицы и открытии формы, в listbox показывались выбранные значения.
Здравствуйте. Если в форме оставить возможность выбирать в listbox только одно значение, то данные заносятся в таблицу и по нажатию на строке таблицы снова открывается форма с выбранным значением в listbox. Но если в listbox поставить выбор нескольких значений, то все сразу перестает работать. Как сделать так чтобы была возможность выбора нескольких значений, чтобы они вставлялись в таблицу и по нажатию на строке таблицы и открытии формы, в listbox показывались выбранные значения.dmtgrs
Private Sub CommandButton1_Click() Dim iPR As Long iPR = Cells(Rows.Count, 1).End(xlUp).Row + 1 Cells(iPR, 2) = txt_¹ Cells(iPR, 3) = txt_fio Cells(iPR, 4) = txt_email Cells(iPR, 5) = txt_tel With txt_kvalif For i = 0 To .ListCount - 1 If .Selected(i) Then s = s & "," & .List(i) End If Next End With Cells(iPR, 6) = Mid(s, 2) Cells(iPR, 7) = txt_stat Cells(iPR, 8) = txt_cok Cells(iPR, 9) = txt_raspor Unload UserForm1 ThisWorkbook.Save End Sub
Private Sub CommandButton2_Click() 'êîä äëÿ "Ñîõðàíèòü îòðåäàêòèðîâàííûé äàííûå" 'If Edit_Copy = "Edit" Then Cells(ActiveCell.Row, 2) = txt_¹ Cells(ActiveCell.Row, 3) = txt_fio Cells(ActiveCell.Row, 4) = txt_email Cells(ActiveCell.Row, 5) = txt_tel With txt_kvalif For i = 0 To .ListCount - 1 If .Selected(i) Then s = s & "," & .List(i)
End If Next End With Cells(ActiveCell.Row, 6) = Mid(s, 2) Cells(ActiveCell.Row, 7) = txt_stat Cells(ActiveCell.Row, 8) = txt_cok Cells(ActiveCell.Row, 9) = txt_raspor
End Sub
[/vba]
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Cancel = True UserForm1.txt_¹ = CStr(Cells(Selection.Rows.Row, 2).Value) UserForm1.txt_fio = CStr(Cells(Selection.Rows.Row, 3).Value) UserForm1.txt_email = CStr(Cells(Selection.Rows.Row, 4).Value) UserForm1.txt_tel = CStr(Cells(Selection.Rows.Row, 5).Value) Dim arr, i arr = Split(CStr(Cells(Selection.Rows.Row, 6).Value), ",") If IsArray(arr) Then With UserForm1.txt_kvalif For i = 0 To .ListCount - 1 If UBound(Filter(arr, .List(i), , vbTextCompare)) > -1 Then .Selected(i) = True End If Next End With End If UserForm1.txt_stat = CStr(Cells(Selection.Rows.Row, 7).Value) UserForm1.txt_cok = CStr(Cells(Selection.Rows.Row, 8).Value) UserForm1.txt_raspor = CStr(Cells(Selection.Rows.Row, 9).Value) UserForm1.Show vbModeless End Sub
[/vba]
[vba]
Код
Private Sub CommandButton1_Click() Dim iPR As Long iPR = Cells(Rows.Count, 1).End(xlUp).Row + 1 Cells(iPR, 2) = txt_¹ Cells(iPR, 3) = txt_fio Cells(iPR, 4) = txt_email Cells(iPR, 5) = txt_tel With txt_kvalif For i = 0 To .ListCount - 1 If .Selected(i) Then s = s & "," & .List(i) End If Next End With Cells(iPR, 6) = Mid(s, 2) Cells(iPR, 7) = txt_stat Cells(iPR, 8) = txt_cok Cells(iPR, 9) = txt_raspor Unload UserForm1 ThisWorkbook.Save End Sub
Private Sub CommandButton2_Click() 'êîä äëÿ "Ñîõðàíèòü îòðåäàêòèðîâàííûé äàííûå" 'If Edit_Copy = "Edit" Then Cells(ActiveCell.Row, 2) = txt_¹ Cells(ActiveCell.Row, 3) = txt_fio Cells(ActiveCell.Row, 4) = txt_email Cells(ActiveCell.Row, 5) = txt_tel With txt_kvalif For i = 0 To .ListCount - 1 If .Selected(i) Then s = s & "," & .List(i)
End If Next End With Cells(ActiveCell.Row, 6) = Mid(s, 2) Cells(ActiveCell.Row, 7) = txt_stat Cells(ActiveCell.Row, 8) = txt_cok Cells(ActiveCell.Row, 9) = txt_raspor
End Sub
[/vba]
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Cancel = True UserForm1.txt_¹ = CStr(Cells(Selection.Rows.Row, 2).Value) UserForm1.txt_fio = CStr(Cells(Selection.Rows.Row, 3).Value) UserForm1.txt_email = CStr(Cells(Selection.Rows.Row, 4).Value) UserForm1.txt_tel = CStr(Cells(Selection.Rows.Row, 5).Value) Dim arr, i arr = Split(CStr(Cells(Selection.Rows.Row, 6).Value), ",") If IsArray(arr) Then With UserForm1.txt_kvalif For i = 0 To .ListCount - 1 If UBound(Filter(arr, .List(i), , vbTextCompare)) > -1 Then .Selected(i) = True End If Next End With End If UserForm1.txt_stat = CStr(Cells(Selection.Rows.Row, 7).Value) UserForm1.txt_cok = CStr(Cells(Selection.Rows.Row, 8).Value) UserForm1.txt_raspor = CStr(Cells(Selection.Rows.Row, 9).Value) UserForm1.Show vbModeless End Sub