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

Вход

Регистрация

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

 

= Мир MS Excel/Сортировка значений ListBox по второму столбцу - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сортировка значений ListBox по второму столбцу (Макросы/Sub)
Сортировка значений ListBox по второму столбцу
vigl Дата: Понедельник, 12.02.2018, 01:59 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Всем доброй ночи!
Прошу помочь с сортировкой данных в ListBox по второму столбцу ListBox: ListBox заполняется данными из двух столбцов без сортировки (первый столбец - уникальный код, второй столбец - ФИО) и после его заполнения необходимо отсортировать список в соответствии со вторым столбцом (ФИО) по возрастанию, при этом, уникальный код первого столбца после сортировки должен тоже отсортироваться и соответствовать этому человеку.
Вторая проблема с которой я столкнулся, это отбор значений из ListBox в соответствии с введенными буквами в TextBox.
Спасибо.
К сообщению приложен файл: _4.xlsm(41.1 Kb)
 
Ответить
СообщениеВсем доброй ночи!
Прошу помочь с сортировкой данных в ListBox по второму столбцу ListBox: ListBox заполняется данными из двух столбцов без сортировки (первый столбец - уникальный код, второй столбец - ФИО) и после его заполнения необходимо отсортировать список в соответствии со вторым столбцом (ФИО) по возрастанию, при этом, уникальный код первого столбца после сортировки должен тоже отсортироваться и соответствовать этому человеку.
Вторая проблема с которой я столкнулся, это отбор значений из ListBox в соответствии с введенными буквами в TextBox.
Спасибо.

Автор - vigl
Дата добавления - 12.02.2018 в 01:59
SLAVICK Дата: Понедельник, 12.02.2018, 10:23 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2208
Репутация: 739 ±
Замечаний: 0% ±

2007,2010,2013,2016
можно использовать функцию сортировки массива, например тут я про нее писал
[vba]
Код
Private Function aQSort2(ByRef a() As Variant, ByVal n As Integer, ByRef low As Long, ByRef high As Long)
'aQSort2 vData, 5, LBound(vData), UBound(vData)
Dim i As Long, j As Long, k As Long
Dim m As Variant, wsp As Variant
i = low
j = high
m = a(Round((i + j) \ 2), n)
Do Until i > j
Do While a(i, n) < m
i = i + 1
Loop
Do While a(j, n) > m
j = j - 1
Loop
If (i <= j) Then
For k = LBound(a, 2) To UBound(a, 2)
wsp = a(i, k)
a(i, k) = a(j, k)
a(j, k) = wsp
Next k
i = i + 1
j = j - 1
End If
Loop
If (low < j) Then aQSort2 a(), n, low, j
If (i < high) Then aQSort2 a(), n, i, high
End Function
[/vba]
К сообщению приложен файл: 8140576.xlsm(40.3 Kb)


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщениеможно использовать функцию сортировки массива, например тут я про нее писал
[vba]
Код
Private Function aQSort2(ByRef a() As Variant, ByVal n As Integer, ByRef low As Long, ByRef high As Long)
'aQSort2 vData, 5, LBound(vData), UBound(vData)
Dim i As Long, j As Long, k As Long
Dim m As Variant, wsp As Variant
i = low
j = high
m = a(Round((i + j) \ 2), n)
Do Until i > j
Do While a(i, n) < m
i = i + 1
Loop
Do While a(j, n) > m
j = j - 1
Loop
If (i <= j) Then
For k = LBound(a, 2) To UBound(a, 2)
wsp = a(i, k)
a(i, k) = a(j, k)
a(j, k) = wsp
Next k
i = i + 1
j = j - 1
End If
Loop
If (low < j) Then aQSort2 a(), n, low, j
If (i < high) Then aQSort2 a(), n, i, high
End Function
[/vba]

Автор - SLAVICK
Дата добавления - 12.02.2018 в 10:23
vigl Дата: Понедельник, 12.02.2018, 10:58 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
SLAVICK, спасибо Вам большое!
 
Ответить
СообщениеSLAVICK, спасибо Вам большое!

Автор - vigl
Дата добавления - 12.02.2018 в 10:58
vigl Дата: Понедельник, 12.02.2018, 13:17 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 32
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
SLAVICK, не могли бы помочь решить вторую проблему по отбору значений из ListBox в соответствии с введенными буквами в TextBox?
 
Ответить
СообщениеSLAVICK, не могли бы помочь решить вторую проблему по отбору значений из ListBox в соответствии с введенными буквами в TextBox?

Автор - vigl
Дата добавления - 12.02.2018 в 13:17
китин Дата: Понедельник, 12.02.2018, 13:56 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4818
Репутация: 771 ±
Замечаний: 0% ±

Excel 2007;Excel 2010
вторую проблему

вторая проблема: отдельная тема


Не судите строго:я пытаюсь научиться
ЯД 41001877306852/WM R249698041931; Z239672726538
 
Ответить
Сообщение
вторую проблему

вторая проблема: отдельная тема

Автор - китин
Дата добавления - 12.02.2018 в 13:56
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сортировка значений ListBox по второму столбцу (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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