Здравствуйте. Только - только начинаю осваивать VBA, поэтому не судите строго. Не могу организовать в юзерформе зависимый выпадающий список с возможность поиска совпадений в любом месте из слов в диапазоне сводной таблицы.
Задача: При выборе в комбобоксе "Статьи расходов" категории, в комбобоксе "Подкатегория" должен подставляться список, подкатегорий соответствующий статье расходов (на листе "Технический" есть сводная "Категории_Подкатегории_ST")
независимые выпадающие списки у меня получилось реализовать через этот код: [vba]
Код
Private Sub cbx_article_DropButtonClick() main.cbx_article.List = ThisWorkbook.Sheets("Технический").PivotTables("Категории_ST").PivotFields("Категория").DataRange.Value 'Выпадающий список статьи расходов End Sub Private Sub cbx_article_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) 'Заполнение списка статьи расходов с поиском If KeyCode = 38 Or KeyCode = 40 Then Exit Sub Else Dim a main.cbx_article.List = ThisWorkbook.Sheets("Технический").PivotTables("Категории_ST").PivotFields("Категория").DataRange.Value a = Application.Transpose(main.cbx_article.List) If main.cbx_article.Value = "" Then main.cbx_article.List = ThisWorkbook.Sheets("Технический").PivotTables("Категории_ST").PivotFields("Категория").DataRange.Value Else a = Filter(a, main.cbx_article.Value, True, vbTextCompare) main.cbx_article.List = a End If main.cbx_article.DropDown End If End Sub
[/vba]
А вот зависимый не могу сообразить как прикрутить. Пока код зависимого выглядить так (без возможности поиска): [vba]
Код
Sub FillSubcategory() 'Заполнение списка подкатегории
Set ShData = ThisWorkbook.Worksheets("Данные") Set ArticleListObj = ShData.ListObjects("Данные_tb")
main.cbx_subcategory.Clear For Each ArticleListRow In ArticleListObj.ListRows If ArticleListRow.Range(1) = main.cbx_article.Value Then main.cbx_subcategory.AddItem ArticleListRow.Range(2) End If Next ArticleListRow End Sub
[/vba]
Подскажите, пожалуйста, что да куда подставить
Здравствуйте. Только - только начинаю осваивать VBA, поэтому не судите строго. Не могу организовать в юзерформе зависимый выпадающий список с возможность поиска совпадений в любом месте из слов в диапазоне сводной таблицы.
Задача: При выборе в комбобоксе "Статьи расходов" категории, в комбобоксе "Подкатегория" должен подставляться список, подкатегорий соответствующий статье расходов (на листе "Технический" есть сводная "Категории_Подкатегории_ST")
независимые выпадающие списки у меня получилось реализовать через этот код: [vba]
Код
Private Sub cbx_article_DropButtonClick() main.cbx_article.List = ThisWorkbook.Sheets("Технический").PivotTables("Категории_ST").PivotFields("Категория").DataRange.Value 'Выпадающий список статьи расходов End Sub Private Sub cbx_article_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) 'Заполнение списка статьи расходов с поиском If KeyCode = 38 Or KeyCode = 40 Then Exit Sub Else Dim a main.cbx_article.List = ThisWorkbook.Sheets("Технический").PivotTables("Категории_ST").PivotFields("Категория").DataRange.Value a = Application.Transpose(main.cbx_article.List) If main.cbx_article.Value = "" Then main.cbx_article.List = ThisWorkbook.Sheets("Технический").PivotTables("Категории_ST").PivotFields("Категория").DataRange.Value Else a = Filter(a, main.cbx_article.Value, True, vbTextCompare) main.cbx_article.List = a End If main.cbx_article.DropDown End If End Sub
[/vba]
А вот зависимый не могу сообразить как прикрутить. Пока код зависимого выглядить так (без возможности поиска): [vba]
Код
Sub FillSubcategory() 'Заполнение списка подкатегории
Set ShData = ThisWorkbook.Worksheets("Данные") Set ArticleListObj = ShData.ListObjects("Данные_tb")
main.cbx_subcategory.Clear For Each ArticleListRow In ArticleListObj.ListRows If ArticleListRow.Range(1) = main.cbx_article.Value Then main.cbx_subcategory.AddItem ArticleListRow.Range(2) End If Next ArticleListRow End Sub
[/vba]
Подскажите, пожалуйста, что да куда подставитьscryde2015
Понравились связки "Без договора" = "За счет местного бюджета" и подобное... scryde2015, если хотите, чтобы в Вашем коде кто-то разобрался, пишите в нем комментарии. Вам самому охота будет разбираться, какая публичная переменная в каком модуль прыгает и что она должна делать?
Понравились связки "Без договора" = "За счет местного бюджета" и подобное... scryde2015, если хотите, чтобы в Вашем коде кто-то разобрался, пишите в нем комментарии. Вам самому охота будет разбираться, какая публичная переменная в каком модуль прыгает и что она должна делать?_Igor_61