Доброго времени суток! Господа хорошие! Подскажите пожалуйста! я ввожу фамилию по буквам в textbox и получаю результат поиска из столбца "С:C" и хочу полученный результат поиска в listBox в два столбика ИМЯ и Фамилия (Имена Столбец "B:B" фамилии"C:C") и если можно дописать макрос что бы в textbox можно было либо имя либо фамилию и он искал по любому из параметров!
[vba]
Код
Private Sub Списоклюдей_Change() Dim txt As String, lt As Long, s As String, v, y, i, z As String txt = Списоклюдей.Text: lt = Len(txt) If lt = 0 Then Exit Sub x = Range("C4", Cells(Rows.Count, 3).End(xlUp)).Value 'Фамилии y = Range("B4", Cells(Rows.Count, 2).End(xlUp)).Value 'Имена
For i = 1 To UBound(x, 1) 'поиск по любому вхождению If InStr(x(i, 1), txt) Then s = s & "~" & x(i, 1): z = z & "~" & y(i, 1)
Next i With Me.Список .ColumnHeads = False .ColumnCount = 2 .ColumnWidths = "60;50" .AddItem .List = Split(Mid(s, 2), "~") ' Список.List = Split(Mid(z, 2), "~") ' тут не получается End With
End Sub Private Sub Список_Click() 'If Список.ListIndex = -1 Then Exit Sub On Error Resume Next ActiveSheet.ShowAllData Range("C:C").Find(Список, lookat:=xlWhole).Activate ' в listbox поиском выводиться фамилии!!! и по нажатию на неё он выделяет ячейку с первой найденной фамилией а нужно по двум критериям по фамилии и имени из listbox! End Sub
[/vba]
Доброго времени суток! Господа хорошие! Подскажите пожалуйста! я ввожу фамилию по буквам в textbox и получаю результат поиска из столбца "С:C" и хочу полученный результат поиска в listBox в два столбика ИМЯ и Фамилия (Имена Столбец "B:B" фамилии"C:C") и если можно дописать макрос что бы в textbox можно было либо имя либо фамилию и он искал по любому из параметров!
[vba]
Код
Private Sub Списоклюдей_Change() Dim txt As String, lt As Long, s As String, v, y, i, z As String txt = Списоклюдей.Text: lt = Len(txt) If lt = 0 Then Exit Sub x = Range("C4", Cells(Rows.Count, 3).End(xlUp)).Value 'Фамилии y = Range("B4", Cells(Rows.Count, 2).End(xlUp)).Value 'Имена
For i = 1 To UBound(x, 1) 'поиск по любому вхождению If InStr(x(i, 1), txt) Then s = s & "~" & x(i, 1): z = z & "~" & y(i, 1)
Next i With Me.Список .ColumnHeads = False .ColumnCount = 2 .ColumnWidths = "60;50" .AddItem .List = Split(Mid(s, 2), "~") ' Список.List = Split(Mid(z, 2), "~") ' тут не получается End With
End Sub Private Sub Список_Click() 'If Список.ListIndex = -1 Then Exit Sub On Error Resume Next ActiveSheet.ShowAllData Range("C:C").Find(Список, lookat:=xlWhole).Activate ' в listbox поиском выводиться фамилии!!! и по нажатию на неё он выделяет ячейку с первой найденной фамилией а нужно по двум критериям по фамилии и имени из listbox! End Sub
Решил я Вопрос небольшим дополнением Listbox2 добавил и там сделал выбор по имени! но я потратил 3 ночи на поиск решения и мне всё же не удалось этого сделать в Одном Listbox! Пример того как я сделал! [vba]
Код
Private Sub Список2_Click() Cells.Find(Список2.Text, After:=ActiveCell).Activate End Sub
Private Sub Списоклюдей_Change() Dim txt As String, lt As Long, s As String, v, y, i, z As String txt = Списоклюдей.Text: lt = Len(txt) If lt = 0 Then Exit Sub x = Range("C4", Cells(Rows.Count, 3).End(xlUp)).Value 'Фамилии y = Range("B4", Cells(Rows.Count, 2).End(xlUp)).Value 'Имена
For i = 1 To UBound(x, 1) 'поиск по любому вхождению If InStr(x(i, 1), txt) Then s = s & "~" & x(i, 1): z = z & "~" & y(i, 1)
Next i With Me.Список .ColumnHeads = False .ColumnCount = 2 .ColumnWidths = "60;50" .Список.List = Split(Mid(s, 2), "~") .Список2.List = Split(Mid(z, 2), "~") ' Добавил второй listbox End With
End Sub
Private Sub Список_Click() 'If Список.ListIndex = -1 Then Exit Sub On Error Resume Next ActiveSheet.ShowAllData Range("C:C").Find(Список, lookat:=xlWhole).Activate End Sub
[/vba]
Решил я Вопрос небольшим дополнением Listbox2 добавил и там сделал выбор по имени! но я потратил 3 ночи на поиск решения и мне всё же не удалось этого сделать в Одном Listbox! Пример того как я сделал! [vba]
Код
Private Sub Список2_Click() Cells.Find(Список2.Text, After:=ActiveCell).Activate End Sub
Private Sub Списоклюдей_Change() Dim txt As String, lt As Long, s As String, v, y, i, z As String txt = Списоклюдей.Text: lt = Len(txt) If lt = 0 Then Exit Sub x = Range("C4", Cells(Rows.Count, 3).End(xlUp)).Value 'Фамилии y = Range("B4", Cells(Rows.Count, 2).End(xlUp)).Value 'Имена
For i = 1 To UBound(x, 1) 'поиск по любому вхождению If InStr(x(i, 1), txt) Then s = s & "~" & x(i, 1): z = z & "~" & y(i, 1)
Next i With Me.Список .ColumnHeads = False .ColumnCount = 2 .ColumnWidths = "60;50" .Список.List = Split(Mid(s, 2), "~") .Список2.List = Split(Mid(z, 2), "~") ' Добавил второй listbox End With
End Sub
Private Sub Список_Click() 'If Список.ListIndex = -1 Then Exit Sub On Error Resume Next ActiveSheet.ShowAllData Range("C:C").Find(Список, lookat:=xlWhole).Activate End Sub
я прошу сильно не смеяться когда увидите что я там конструирую с макросами)))) Суть этого макроса находить людей из списка "B:C" по введённым буквам и отмечать у кого они работают "E$2:$M2"
я прошу сильно не смеяться когда увидите что я там конструирую с макросами)))) Суть этого макроса находить людей из списка "B:C" по введённым буквам и отмечать у кого они работают "E$2:$M2"JIuqep
И Вы не смейтесь над старческим маразмом. Будут выделятся только однофамильцы .Для одинаковых имен макрос будет посложнее. надеюсь, что понял правильно
И Вы не смейтесь над старческим маразмом. Будут выделятся только однофамильцы .Для одинаковых имен макрос будет посложнее. надеюсь, что понял правильноdoober
Извините меня! я имел ввиду юзер форму "ВыходЛюдей" но не написал об этом! Сейчас попробую туда приладить то что Умный человек написал! пример! <мне нужна Казаченко София а при нажатии на фамилию выдает "Казаченко Алена"> И ОГРОМНОЕ ВАМ СПАСИБО ЗА ВАШУ ПОМОЩЬ!
Извините меня! я имел ввиду юзер форму "ВыходЛюдей" но не написал об этом! Сейчас попробую туда приладить то что Умный человек написал! пример! <мне нужна Казаченко София а при нажатии на фамилию выдает "Казаченко Алена"> И ОГРОМНОЕ ВАМ СПАСИБО ЗА ВАШУ ПОМОЩЬ!JIuqep
Говори о чём думаешь! НО думай прежде чем о чем то говорить!
Сообщение отредактировал JIuqep - Среда, 18.11.2020, 00:37
Доделал полностью userform и Макрос как он должен работать но нету вывода в listbox имён и поиск нужной строки "что бы совпадало и имя и фамилия" при выделении в listbox
Доделал полностью userform и Макрос как он должен работать но нету вывода в listbox имён и поиск нужной строки "что бы совпадало и имя и фамилия" при выделении в listboxJIuqep
Спасибо Вам огромное doober! На вопрос как сделать два столбика в listbox я получил! Спасибо Вам огромное nilem! Вы полностью сделали что я хотел! я конечно ещё две ночи изучал Ваши макросы! Допилил полностью! Единственное что ещё не нашёл как в listbox который я доделал удалить пустые строки в конце списков! но ещё ночка и я его победю ):! ЕЩЁ РАЗ ОГРОМНОЕ СПАСИБО ЗА ВАШ ТРУД! Желаю от души вам всех благ!
Спасибо Вам огромное doober! На вопрос как сделать два столбика в listbox я получил! Спасибо Вам огромное nilem! Вы полностью сделали что я хотел! я конечно ещё две ночи изучал Ваши макросы! Допилил полностью! Единственное что ещё не нашёл как в listbox который я доделал удалить пустые строки в конце списков! но ещё ночка и я его победю ):! ЕЩЁ РАЗ ОГРОМНОЕ СПАСИБО ЗА ВАШ ТРУД! Желаю от души вам всех благ!JIuqep