Страницы: 1
RSS
ComboBox, последние значения списка, Как вывести в ComboBox последние значения списка
 
Друзья, добрый день!
Пожалуйста, подскажите, я столкнулся с такой проблемой:
есть ComboBox, данные которого подтягиваются из списка. Список моет быть сколь угодно длинный, а мне надо, чтобы в ComboBox-е отображались только последние значения и этого списка. Отображение количества значений в ComboBox, я настраивать умею))), но вот настроить отображение списка не могу.
К примеру:
Список 1,2,3,4.......56,57,58,59,60
ComboBox настроен на отображение 3 значений
Мне надо, чтобы отобразилось: 58,59,60. Т.е. порядок долен сохраняться.
Всех благодарю, кто обратит внимание на мою просьбу.
 
Здравствуйте.
Файл excel с прицепом вашего ComboBox приложите, в который добавляются данные из списка
 
Цитата
ArtKEXcel написал:
данные которого подтягиваются из списка
у нас этого списка нет, файла тоже. Поэтому вот принцип, дальше сами:
Код
dim llastr&
With Sheets("Лист со списком") 'на этом листе список для комбобокса
llastr = .Cells(.rows.count,1).end(xlup).row 'последняя строка в столбце А. Если список в другом столбце - вместо 1 ставите его номер
If llastr > =3 then
    ComboBox.List = .cells(llastr-2,1).Resize(3).value
Else
    ComboBox.List = .cells(1,1).Resize(llastr).value
end if
End With
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
asesja, Добрый день!
Приложил.
Я этот файл для примера сварганил, так как в том, для которого я это прошу, я такого навертел.... Может показаться избыточным. Я переработаю сам под нужный файл. Спасибо!
Изменено: ArtKEXcel - 09.06.2024 22:58:11 (Дополнил)
 
Дмитрий(The_Prist) Щербаков,  Благодарю! Сейчас буду пробовать.
 
Дмитрий(The_Prist) Щербаков, Ваша часть кода работает как мне надо было, но не могу разобраться в противоречии с другой частью кода. (неверный аргумент)
Другая часть работает для подтягивания значений в TextBox-ы в зависимости от выбранного значения в Combobox.
Тут я завис((((
 
ArtKEXcel, Держите:
Код
Option Explicit

' Событие изменения ComboBox
Private Sub ComboBox1_Change()
    Dim sh          As Worksheet: Set sh = ThisWorkbook.Worksheets("Список")

    If ComboBox1.ListIndex >= 0 Then
        Dim sRow    As Long: sRow = sh.Cells(sh.Rows.Count, 1).End(xlUp).Row - 2 + ComboBox1.ListIndex
        TextBox1.Value = sh.Cells(sRow, 2).Value
        TextBox2.Value = sh.Cells(sRow, 3).Value
    End If

    Application.Goto sh.Range(sh.Cells(sRow, 1), sh.Cells(sRow, 3))
End Sub

' Это событие возникает при запуске формы
Private Sub UserForm_Initialize()
    Dim sh          As Worksheet: Set sh = ThisWorkbook.Worksheets("Список")

    With sh
        Dim lastrow As Long: lastrow = .Cells(.Rows.Count, 1).End(xlUp).Row
        Me.ComboBox1.Clear

        If lastrow >= 3 Then
            ComboBox1.List = .Cells(lastrow - 2, 1).Resize(3).Value
        Else
            ComboBox1.List = .Cells(1, 1).Resize(lastrow).Value
        End If

    End With

End Sub
Удачи.
Страницы: 1
Наверх