Страницы: 1
RSS
Выбор значений в ListBox по значению ComboBox
 
Привет Уважаемые!

Ребят, такой вопрос - есть книга excel в которой созданы Лист1, Лист2, Лист3, Лист4, Лист5

Так же есть UserForm с элементами ListBox1, ComboBox1, CommandButton1

При запуске UserForm в ListBox1 загружаются название всех листов книги :
Код
Private Sub UserForm_Initialize()

  ListBox1.Clear

  For i = 1 To Sheets.Count
    ListBox1.AddItem Sheets(i).Name
  Next

End Sub

В ListBox1 включена опция MultiSelect = 1 - fmMultiSelectMulti

В ComboBox1, так же при запуске UserForm, добавляется 2 Item - "Группа1", "Группа2"

Код
Private Sub UserForm_Initialize()
    ListBox1.Clear
    
    For i = 1 To Sheets.Count
        ListBox1.AddItem Sheets(i).Name
    Next

    ComboBox1.AddItem "Группа1"
    ComboBox1.AddItem "Группа2"

End Sub

Соотношение:

  Группа1 - Лист1, Лист4

  Группа2 - Лист2, Лист3, Лист5

Какова задумка - При выборе определенной группы в ComboBox1 и нажатии CommandButton1, в ListBox1 выбирались (под средством MultiSelect) листы, которые относятся к указанной группе.

Простите что без примера так как нет возможности его выложить в данный момент.

Буду очень благодарен за помощь или/и совет!

 
Цитата
aimv написал: Простите что без примера
В так случае и нас простите. Найдется мало желающих все вышеописанное воспроизвести в файле. Хотя...
Цитата
aimv написал: помощь или/и совет
А что тут без файла посоветуешь? Напишите код, соответствующий Вашей задумке
Согласие есть продукт при полном непротивлении сторон
 
aimv,во вложении
группы и листы на отдельный лист лучше вынести, тип настройки. Так для примера на скорую руку набросал
Код
Private Sub ComboBox1_Change()
    ClearList1
    If Len(ComboBox1.Text) > 1 Then
        With ComboBox1
                For j = 1 To .ColumnCount - 1
                    SelectItems (.List(.ListIndex, j))
                Next j
        End With
    End If
End Sub

Private Sub ComboBox1_Enter()
    ComboBox1.DropDown
End Sub

Private Sub UserForm_Initialize()
    With ListBox1
        .Clear
        .MultiSelect = fmMultiSelectMulti
        For i = 1 To Sheets.Count
            .AddItem Sheets(i).Name
        Next
    End With
    With ComboBox1
        .ColumnCount = 4
         .RowSource = Range("A2:D3").Address
    End With
End Sub
Function SelectItems(ByVal strItem As String) As Boolean
With ListBox1
    For i = 0 To .ListCount - 1
        If .List(i) = strItem Then
            .Selected(i) = True
            Exit Function
        End If
    Next i
End With
End Function

Function ClearList1() As Boolean
    With ListBox1
        For i = 0 To .ListCount - 1
            .Selected(i) = False
        Next i
    End With
End Function
 
SXXL, Спасибо Вам огромное!
Страницы: 1
Наверх