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

Вход

Регистрация

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

 

= Мир MS Excel/Связанные списки ComboBox - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Связанные списки ComboBox
Jenialij Дата: Пятница, 24.01.2025, 16:21 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

2021
Здравствуйте.

В файле два листа "ReportS" - отчет, и "Nomenclature" - справочники.
На листе "ReportS" есть работающие связанные списки, созданные через "проверку данных": "Категории" и "Номенклатура".
Каждому элементу из "умной" таблицы "Категории" соответствует "умная" таблица Номенклатуры с таким же названием. При наличии пробелов в названиях Категорий происходит замена на "_".
Значения из списков "Категории" и "Номенклатура" использовались как условия для создания отчета продаж, реализованном с помощью формул (самого отчета в примере нет, дабы не загромождать).
Решил заменить стандартные списки на ComboBox. Первый ComboBox1 работает. Пытался использовать в ComboBox2 переменную, которой присваивается значение из ComboBox1. Но не работает. Прошу помочь.

[vba]
Код
Private Sub ComboBox1_Change()
Worksheets("ReportS").ComboBox2.Clear
    With Worksheets("Nomenclature")
        Worksheets("ReportS").ComboBox1.ListFillRange = "'" & .Name & "'!" & .ListObjects("Категорія").ListColumns("Категорія").DataBodyRange.Address
    End With
End Sub
[/vba]

[vba]
Код
Sub ComboBox2_Change()
Dim ComboBox1Value As String
ComboBox1Value = Replace(ComboBox1.Value, " ", "_")
    With Worksheets("Nomenclature")
        Worksheets("ReportS").ComboBox2.ListFillRange = "'" & .Name & "'!" & .ListObjects("ComboBox1Value").ListColumns("ComboBox1Value").DataBodyRange.Address
    End With
End Sub
[/vba]

И еще вопрос, а то не совсем понимаю.
Возможно ли использовать значение, выбранное в ComboBox, в обычных формулах Excel?
Т.е., если при использовании обычных списков, я могу подставить в формулу значение из ячейки (например, как условие в функции "ЕСЛИ"), то как теперь это сделать при использовании ComboBox?
Или это возможно только через предварительную запись значения из ComboBox в какую-то ячейку (Cells(ХХ, ХХ) = ComboBox1.Value), и в формуле уже ссылаться на нее?
К сообщению приложен файл: example.xls (64.5 Kb)
 
Ответить
СообщениеЗдравствуйте.

В файле два листа "ReportS" - отчет, и "Nomenclature" - справочники.
На листе "ReportS" есть работающие связанные списки, созданные через "проверку данных": "Категории" и "Номенклатура".
Каждому элементу из "умной" таблицы "Категории" соответствует "умная" таблица Номенклатуры с таким же названием. При наличии пробелов в названиях Категорий происходит замена на "_".
Значения из списков "Категории" и "Номенклатура" использовались как условия для создания отчета продаж, реализованном с помощью формул (самого отчета в примере нет, дабы не загромождать).
Решил заменить стандартные списки на ComboBox. Первый ComboBox1 работает. Пытался использовать в ComboBox2 переменную, которой присваивается значение из ComboBox1. Но не работает. Прошу помочь.

[vba]
Код
Private Sub ComboBox1_Change()
Worksheets("ReportS").ComboBox2.Clear
    With Worksheets("Nomenclature")
        Worksheets("ReportS").ComboBox1.ListFillRange = "'" & .Name & "'!" & .ListObjects("Категорія").ListColumns("Категорія").DataBodyRange.Address
    End With
End Sub
[/vba]

[vba]
Код
Sub ComboBox2_Change()
Dim ComboBox1Value As String
ComboBox1Value = Replace(ComboBox1.Value, " ", "_")
    With Worksheets("Nomenclature")
        Worksheets("ReportS").ComboBox2.ListFillRange = "'" & .Name & "'!" & .ListObjects("ComboBox1Value").ListColumns("ComboBox1Value").DataBodyRange.Address
    End With
End Sub
[/vba]

И еще вопрос, а то не совсем понимаю.
Возможно ли использовать значение, выбранное в ComboBox, в обычных формулах Excel?
Т.е., если при использовании обычных списков, я могу подставить в формулу значение из ячейки (например, как условие в функции "ЕСЛИ"), то как теперь это сделать при использовании ComboBox?
Или это возможно только через предварительную запись значения из ComboBox в какую-то ячейку (Cells(ХХ, ХХ) = ComboBox1.Value), и в формуле уже ссылаться на нее?

Автор - Jenialij
Дата добавления - 24.01.2025 в 16:21
Jenialij Дата: Пятница, 24.01.2025, 18:46 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

2021
Ошибку у себя нашел. Для ComboBox2 названия столбцов должны быть с пробелами.

[vba]
Код
Sub ComboBox2_Change()

Dim ComboBox1Value As String, ComboBox1Value2 As String
ComboBox1Value = Replace(ComboBox1.Value, " ", "_")
ComboBox1Value2 = ComboBox1.Value

    With Worksheets("Nomenclature")
        Worksheets("ReportS").ComboBox2.ListFillRange = "'" & .Name & "'!" & .ListObjects("ComboBox1Value").ListColumns("ComboBox1Value2").DataBodyRange.Address
    End With
End Sub
[/vba]

Но все равно не работает.
 
Ответить
СообщениеОшибку у себя нашел. Для ComboBox2 названия столбцов должны быть с пробелами.

[vba]
Код
Sub ComboBox2_Change()

Dim ComboBox1Value As String, ComboBox1Value2 As String
ComboBox1Value = Replace(ComboBox1.Value, " ", "_")
ComboBox1Value2 = ComboBox1.Value

    With Worksheets("Nomenclature")
        Worksheets("ReportS").ComboBox2.ListFillRange = "'" & .Name & "'!" & .ListObjects("ComboBox1Value").ListColumns("ComboBox1Value2").DataBodyRange.Address
    End With
End Sub
[/vba]

Но все равно не работает.

Автор - Jenialij
Дата добавления - 24.01.2025 в 18:46
  • Страница 1 из 1
  • 1
Поиск:

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