Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как перенести выбранные значения из listbox в таблицу? - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как перенести выбранные значения из listbox в таблицу? (Макросы/Sub)
Как перенести выбранные значения из listbox в таблицу?
dmtgrs Дата: Пятница, 11.10.2019, 10:08 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Здравствуйте.
Если в форме оставить возможность выбирать в listbox только одно значение, то данные заносятся в таблицу и по нажатию на строке таблицы снова открывается форма с выбранным значением в listbox. Но если в listbox поставить выбор нескольких значений, то все сразу перестает работать. Как сделать так чтобы была возможность выбора нескольких значений, чтобы они вставлялись в таблицу и по нажатию на строке таблицы и открытии формы, в listbox показывались выбранные значения.
К сообщению приложен файл: test.xlsm (31.0 Kb)
 
Ответить
СообщениеЗдравствуйте.
Если в форме оставить возможность выбирать в listbox только одно значение, то данные заносятся в таблицу и по нажатию на строке таблицы снова открывается форма с выбранным значением в listbox. Но если в listbox поставить выбор нескольких значений, то все сразу перестает работать. Как сделать так чтобы была возможность выбора нескольких значений, чтобы они вставлялись в таблицу и по нажатию на строке таблицы и открытии формы, в listbox показывались выбранные значения.

Автор - dmtgrs
Дата добавления - 11.10.2019 в 10:08
krosav4ig Дата: Пятница, 11.10.2019, 19:00 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[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
[/vba]
К сообщению приложен файл: 1481309.xlsm (31.3 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение[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
[/vba]

Автор - krosav4ig
Дата добавления - 11.10.2019 в 19:00
dmtgrs Дата: Суббота, 12.10.2019, 20:21 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Огромное спасибо!!! Буду разбираться!
 
Ответить
СообщениеОгромное спасибо!!! Буду разбираться!

Автор - dmtgrs
Дата добавления - 12.10.2019 в 20:21
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как перенести выбранные значения из listbox в таблицу? (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!