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

Вход

Регистрация

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

 

= Мир MS Excel/Зависимые выпадающие списки - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Зависимые выпадающие списки (Макросы/Sub)
Зависимые выпадающие списки
Santtic Дата: Вторник, 17.08.2021, 18:27 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 1 ±
Замечаний: 0% ±

Excel 2016
Доброго времени коллеги. Стал на одном вопросе, не могу прописать один комбобокс з зависимым списком.
[vba]
Код
Private Sub ComboBox7_Change()
Dim mas()
Dim cl As Collection
Set cl = New Collection

xxx = ComboBox7.Value

With ComboBox8
    .Clear
    For i = 1 To UBound(m8, 1)
        If m8(i, 1) = xxx Then
            yyy = m8(i, 2)
            .AddItem yyy
        End If
    Next i
    On Error Resume Next
    .ListIndex = 0
    On Error GoTo 0
End With
End Sub
[/vba]
Если я правильно прописал это код. То он должен после определения текста в комбобокс 7 записать данные в комбобокс 8 их массива m8
[vba]
Код
With Sheets("массив")
                конец = .Cells(Rows.Count, 2).End(xlUp).Row
                Y = .Cells(1, Columns.Count).End(xlToLeft).Column
                Set rgRange = .Range(.Cells(2, 2), .Cells(конец, 2))
              
                m8 = rgRange.Value
        End With
        
        Set cl = New Collection
        
        On Error Resume Next
            For i = 1 To UBound(m8, 1)
                xxx = m8(i, 1)
                If xxx <> "" Then
                    cl.Add xxx, xxx
                End If
            Next i
        On Error GoTo 0
        
            For Each itm In cl
                ComboBox8.AddItem itm
            Next
[/vba]
Но он у меня только очищает данные из комбобокса 8
Что не так прописал :'( или я не правильно понимаю этот код
Всем спасибо
 
Ответить
СообщениеДоброго времени коллеги. Стал на одном вопросе, не могу прописать один комбобокс з зависимым списком.
[vba]
Код
Private Sub ComboBox7_Change()
Dim mas()
Dim cl As Collection
Set cl = New Collection

xxx = ComboBox7.Value

With ComboBox8
    .Clear
    For i = 1 To UBound(m8, 1)
        If m8(i, 1) = xxx Then
            yyy = m8(i, 2)
            .AddItem yyy
        End If
    Next i
    On Error Resume Next
    .ListIndex = 0
    On Error GoTo 0
End With
End Sub
[/vba]
Если я правильно прописал это код. То он должен после определения текста в комбобокс 7 записать данные в комбобокс 8 их массива m8
[vba]
Код
With Sheets("массив")
                конец = .Cells(Rows.Count, 2).End(xlUp).Row
                Y = .Cells(1, Columns.Count).End(xlToLeft).Column
                Set rgRange = .Range(.Cells(2, 2), .Cells(конец, 2))
              
                m8 = rgRange.Value
        End With
        
        Set cl = New Collection
        
        On Error Resume Next
            For i = 1 To UBound(m8, 1)
                xxx = m8(i, 1)
                If xxx <> "" Then
                    cl.Add xxx, xxx
                End If
            Next i
        On Error GoTo 0
        
            For Each itm In cl
                ComboBox8.AddItem itm
            Next
[/vba]
Но он у меня только очищает данные из комбобокса 8
Что не так прописал :'( или я не правильно понимаю этот код
Всем спасибо

Автор - Santtic
Дата добавления - 17.08.2021 в 18:27
Santtic Дата: Вторник, 17.08.2021, 22:34 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 1 ±
Замечаний: 0% ±

Excel 2016
Создал файлик, для более детальной ясности что не выходит.
При выборе в "1" "ухты ухты" в "2" должно появиться автоматом "дада" и соответственно в "3" должно быть "ой ой ой ".Но при "ухты ухты" в файле может быть от 5 до 100 строк. и соответственно в "2" может быть не только "дада" а все что относиться к "ухты ухты" и третий соответсвенно.
Что не так делаю, не пойму.
Причем эта проблема только с этими комбами у меня. Остальные работают и автоматом заполняются с возможностью выбора.
Это зависимо выпадающие списки.
 
Ответить
СообщениеСоздал файлик, для более детальной ясности что не выходит.
При выборе в "1" "ухты ухты" в "2" должно появиться автоматом "дада" и соответственно в "3" должно быть "ой ой ой ".Но при "ухты ухты" в файле может быть от 5 до 100 строк. и соответственно в "2" может быть не только "дада" а все что относиться к "ухты ухты" и третий соответсвенно.
Что не так делаю, не пойму.
Причем эта проблема только с этими комбами у меня. Остальные работают и автоматом заполняются с возможностью выбора.
Это зависимо выпадающие списки.

Автор - Santtic
Дата добавления - 17.08.2021 в 22:34
doober Дата: Вторник, 17.08.2021, 22:39 | Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
А файлик то где?


 
Ответить
СообщениеА файлик то где?

Автор - doober
Дата добавления - 17.08.2021 в 22:39
Santtic Дата: Вторник, 17.08.2021, 22:54 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 1 ±
Замечаний: 0% ±

Excel 2016
А файлик то где?

Прошу прощения, не увидел, что не прикрепился(
Исправился
К сообщению приложен файл: 123.xlsm (49.7 Kb)
 
Ответить
Сообщение
А файлик то где?

Прошу прощения, не увидел, что не прикрепился(
Исправился

Автор - Santtic
Дата добавления - 17.08.2021 в 22:54
Pelena Дата: Среда, 18.08.2021, 08:54 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 19165
Репутация: 4412 ±
Замечаний: ±

Excel 365 & Mac Excel
Не уверена, что правильно поняла. Проверьте длявыбора из Combobox7. Для выбора из Combobox8 можно настроить аналогично
К сообщению приложен файл: 6860699.xlsm (45.3 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеНе уверена, что правильно поняла. Проверьте длявыбора из Combobox7. Для выбора из Combobox8 можно настроить аналогично

Автор - Pelena
Дата добавления - 18.08.2021 в 08:54
doober Дата: Среда, 18.08.2021, 09:38 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Смешались люди кони в вашем коде.
Реализация на словарях
К сообщению приложен файл: 3651921.xlsm (46.5 Kb)


 
Ответить
СообщениеСмешались люди кони в вашем коде.
Реализация на словарях

Автор - doober
Дата добавления - 18.08.2021 в 09:38
Santtic Дата: Среда, 18.08.2021, 09:56 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 1 ±
Замечаний: 0% ±

Excel 2016
правильно поняла.

Ваше решение интересней моего во много раз, легче написать, чем то что я придумал))
Спасибо большое Вам.
 
Ответить
Сообщение
правильно поняла.

Ваше решение интересней моего во много раз, легче написать, чем то что я придумал))
Спасибо большое Вам.

Автор - Santtic
Дата добавления - 18.08.2021 в 09:56
Santtic Дата: Среда, 18.08.2021, 10:00 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 1 ±
Замечаний: 0% ±

Excel 2016
Смешались люди кони в вашем коде

Да, так и есть)
Ваш код работает так как надо hands спасибо большое, для меня немного сложноват, надо позаниматься им. Спасибо за помощь hands
 
Ответить
Сообщение
Смешались люди кони в вашем коде

Да, так и есть)
Ваш код работает так как надо hands спасибо большое, для меня немного сложноват, надо позаниматься им. Спасибо за помощь hands

Автор - Santtic
Дата добавления - 18.08.2021 в 10:00
Santtic Дата: Среда, 18.08.2021, 11:23 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 1 ±
Замечаний: 0% ±

Excel 2016
правильно поняла

Подскажите пожалуйста, у меня возникла проблема с одни моментом. У вас он тоже наблюдается.
Например у "ухты ухты" в таблице, значений относящихся к нему может быть тысяча а иногда и 5 тысяч. Со всеми работает, а именно с "ухты ухты" подвисает и висит файл. Правда в столбце J есть и пустые ячейки, из за чего это может быть?
У Doober работает, только реализация его кода мне не ясна) мало еще опыта
 
Ответить
Сообщение
правильно поняла

Подскажите пожалуйста, у меня возникла проблема с одни моментом. У вас он тоже наблюдается.
Например у "ухты ухты" в таблице, значений относящихся к нему может быть тысяча а иногда и 5 тысяч. Со всеми работает, а именно с "ухты ухты" подвисает и висит файл. Правда в столбце J есть и пустые ячейки, из за чего это может быть?
У Doober работает, только реализация его кода мне не ясна) мало еще опыта

Автор - Santtic
Дата добавления - 18.08.2021 в 11:23
doober Дата: Среда, 18.08.2021, 11:39 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
только реализация его кода мне не ясна

Там все просто.
Словарь, аналог коллекции.используется составной ключ , собран из столбцов.


 
Ответить
Сообщение
только реализация его кода мне не ясна

Там все просто.
Словарь, аналог коллекции.используется составной ключ , собран из столбцов.

Автор - doober
Дата добавления - 18.08.2021 в 11:39
Santtic Дата: Среда, 18.08.2021, 11:47 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 1 ±
Замечаний: 0% ±

Excel 2016
используется составной ключ

Да это увидел, но сам процесс формирования я не понимаю, что за чем и как. Если я этого не понимаю, то что то написать, я в жизни не напишу))) Я технарь, сервисмен))
В какой строке у вас идет заполнение со старта?
Форма в вода которую делаю, со старта должна быть пустой, а вот когда только делаю выбор чего то тогда и начинается процесс, я видать не четко выразился первый раз, сори)
Код ваш да, прикольный, формулами я его вижу как реализовать))) а вот макрос, покручу.
ХМ, никогда бы не подумал что библиотекам словарем можно решить вопрос


Сообщение отредактировал Santtic - Среда, 18.08.2021, 12:14
 
Ответить
Сообщение
используется составной ключ

Да это увидел, но сам процесс формирования я не понимаю, что за чем и как. Если я этого не понимаю, то что то написать, я в жизни не напишу))) Я технарь, сервисмен))
В какой строке у вас идет заполнение со старта?
Форма в вода которую делаю, со старта должна быть пустой, а вот когда только делаю выбор чего то тогда и начинается процесс, я видать не четко выразился первый раз, сори)
Код ваш да, прикольный, формулами я его вижу как реализовать))) а вот макрос, покручу.
ХМ, никогда бы не подумал что библиотекам словарем можно решить вопрос

Автор - Santtic
Дата добавления - 18.08.2021 в 11:47
doober Дата: Среда, 18.08.2021, 12:18 | Сообщение № 12
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Я технарь, сервисмен

А я военный пенсионер :)
В UserForm_Activate самая последняя строка
If C_is1.Count > 0 Then ComboBox7.ListIndex = 0


 
Ответить
Сообщение
Я технарь, сервисмен

А я военный пенсионер :)
В UserForm_Activate самая последняя строка
If C_is1.Count > 0 Then ComboBox7.ListIndex = 0

Автор - doober
Дата добавления - 18.08.2021 в 12:18
Santtic Дата: Среда, 18.08.2021, 13:12 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 1 ±
Замечаний: 0% ±

Excel 2016
В UserForm_Activate самая последняя строка

пропустил)
Хороший военный shock
Спасибо большое.
PElena, подскажите пожалуйста из за чего может так быть, что когда большое количество соответствующих "ухты ухты" файл виснет %)
Столкнулся еще с одним заданием...Оказывается в таблице есть и пропуски т.е. отсутствуют данные, но через них все-равно должен идти выбор...
т.е. 1к.б."ухты ухты" - 2к.б (пусто) и потом оказывается есть данные в 3к.б.
Есть решение прописать скрытые к.б. (комбобоксы) которые будут выполняться при определенном условии, но такой макрос растянуть можно на месяц писанины или я ошибаюсь?


Сообщение отредактировал Santtic - Среда, 18.08.2021, 14:56
 
Ответить
Сообщение
В UserForm_Activate самая последняя строка

пропустил)
Хороший военный shock
Спасибо большое.
PElena, подскажите пожалуйста из за чего может так быть, что когда большое количество соответствующих "ухты ухты" файл виснет %)
Столкнулся еще с одним заданием...Оказывается в таблице есть и пропуски т.е. отсутствуют данные, но через них все-равно должен идти выбор...
т.е. 1к.б."ухты ухты" - 2к.б (пусто) и потом оказывается есть данные в 3к.б.
Есть решение прописать скрытые к.б. (комбобоксы) которые будут выполняться при определенном условии, но такой макрос растянуть можно на месяц писанины или я ошибаюсь?

Автор - Santtic
Дата добавления - 18.08.2021 в 13:12
doober Дата: Среда, 18.08.2021, 21:32 | Сообщение № 14
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
У Doober работает, только реализация его кода мне не ясна)

Если макрос рабочий, то используйте его в темную.
Определите нужные столбцы и все.Шустрее этого варианта ничего не будет работать


 
Ответить
Сообщение
У Doober работает, только реализация его кода мне не ясна)

Если макрос рабочий, то используйте его в темную.
Определите нужные столбцы и все.Шустрее этого варианта ничего не будет работать

Автор - doober
Дата добавления - 18.08.2021 в 21:32
Santtic Дата: Четверг, 19.08.2021, 10:40 | Сообщение № 15
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 1 ±
Замечаний: 0% ±

Excel 2016
используйте его в темную.

Терминология немного не ясна)) но направление понятно)
 
Ответить
Сообщение
используйте его в темную.

Терминология немного не ясна)) но направление понятно)

Автор - Santtic
Дата добавления - 19.08.2021 в 10:40
doober Дата: Четверг, 19.08.2021, 10:56 | Сообщение № 16
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Терминология немного не ясна
В преф не играете.
Есть черный ящик, ему назначить нужные столбцы, на выходе правильная работа.Зачем в подробности вдаваться, если обеспечивает функционал


 
Ответить
Сообщение
Терминология немного не ясна
В преф не играете.
Есть черный ящик, ему назначить нужные столбцы, на выходе правильная работа.Зачем в подробности вдаваться, если обеспечивает функционал

Автор - doober
Дата добавления - 19.08.2021 в 10:56
Santtic Дата: Четверг, 19.08.2021, 11:41 | Сообщение № 17
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 1 ±
Замечаний: 0% ±

Excel 2016
[offtop]Не не любитель карт, раньше на деньги играл, а с возрастом как то отпал интерес))
 
Ответить
Сообщение[offtop]Не не любитель карт, раньше на деньги играл, а с возрастом как то отпал интерес))

Автор - Santtic
Дата добавления - 19.08.2021 в 11:41
Santtic Дата: Среда, 25.08.2021, 15:44 | Сообщение № 18
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 1 ±
Замечаний: 0% ±

Excel 2016
Если макрос рабочий, то используйте его в темную.

Добрый день. Скажите пожалуйста, а можно как то сделать ваш макрос так что бы он не был жестко подвязан к столбцу. А привязка была бы по имени столбца. Через [vba]
Код
Find
[/vba]
 
Ответить
Сообщение
Если макрос рабочий, то используйте его в темную.

Добрый день. Скажите пожалуйста, а можно как то сделать ваш макрос так что бы он не был жестко подвязан к столбцу. А привязка была бы по имени столбца. Через [vba]
Код
Find
[/vba]

Автор - Santtic
Дата добавления - 25.08.2021 в 15:44
doober Дата: Среда, 25.08.2021, 20:47 | Сообщение № 19
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Можно




Сообщение отредактировал doober - Среда, 25.08.2021, 20:48
 
Ответить
СообщениеМожно

Автор - doober
Дата добавления - 25.08.2021 в 20:47
Santtic Дата: Среда, 25.08.2021, 21:51 | Сообщение № 20
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 1 ±
Замечаний: 0% ±

Excel 2016
Можно

Огромное спасибо. Ваш вариант очень хорошо помог.
Решение что бы "игнорировать" пустые столбцы, было простым - [vba]
Код
вместо key = Key1 & "_" & Key2 & "_" & Key5 я прописал key = Key1 & "" & Key2 & "" & Key5 все работает
[/vba], а вот мой массив который я все же хотел применить, оказался очень сложным и запутанным.
Еще раз спасибо.
 
Ответить
Сообщение
Можно

Огромное спасибо. Ваш вариант очень хорошо помог.
Решение что бы "игнорировать" пустые столбцы, было простым - [vba]
Код
вместо key = Key1 & "_" & Key2 & "_" & Key5 я прописал key = Key1 & "" & Key2 & "" & Key5 все работает
[/vba], а вот мой массив который я все же хотел применить, оказался очень сложным и запутанным.
Еще раз спасибо.

Автор - Santtic
Дата добавления - 25.08.2021 в 21:51
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Зависимые выпадающие списки (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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