Форум программистов, компьютерный форум, киберфорум
MS Office Excel
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 10.02.2020
Сообщений: 22
1

Многоуровневый выпадающий список

08.06.2021, 19:02. Показов 3381. Ответов 33
Метки нет (Все метки)

Нужно сделать: Выавдающий список (многоуровневый) чтобы можно было выбрать позиции сразу 3 вкалдок. Например Нажимаем на стрелку у нас выпадающий список 1Контрагент,2Контрагент,3Контрагент, выбираю его, дальше идет градация по Номенклатуре (выбираем определоенную номенклатуру) и еще одна градация по трем разным видам цен.
0
Вложения
Тип файла: xlsx Что нужно для выпадающего списка.xlsx (27.4 Кб, 17 просмотров)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.06.2021, 19:02
Ответы с готовыми решениями:

Выпадающий список
Доброго времени суток. Понадобилось сделать выпадающий список, но с зачеркиванием в нем некоторых...

Выпадающий список
Добрый день! Необходима помощь в создании выпадающего списка. Есть таблица с данными(названия...

выпадающий список
Нужно чтобы считало с выпадающего списка значения в другой ячейке, приложил файл

Выпадающий список
День добрый. Есть такая вот "заковыристая" задачка (не лаба, для моих нужд) Есть какая-то огромная...

33
733 / 435 / 148
Регистрация: 22.12.2015
Сообщений: 1,308
08.06.2021, 21:24 2
VID1234, то, что вы описываете, называется "база данных". Если вам нужен нормальный функционал - переходите на базу данных, например Acess. Если нужен все-таки суррогат - приведите ваш файл в "первую нормальную форму базу данных" - сведите все в одну таблицу, и используйте фильтр. В одной колонке выбрали всех требуемых контрагентов, в колонке Номенклатуре выполняется фильтрация (не знаю, что вы подразумеваете под "градацией") и выводятся только значения Номенклатуры, соответствующие выбранным Контрагентам, затем фильтруете по ценам.

В принципе, ваш список реализуем на VBA, но чтобы начать с ним разбираться, вам нужно сначала более внятно описать результат (как список выглядит - понятно, где он должен появляться и что будет результатом этого действа - не очень. Цену вставить в активную ячейку?). На форуме были очень грамотные решения по спискам.
0
3437 / 2102 / 697
Регистрация: 02.11.2012
Сообщений: 5,491
09.06.2021, 08:31 3
это называется "связанные выпадающие списки" поиск должен помочь.
0
0 / 0 / 0
Регистрация: 10.02.2020
Сообщений: 22
09.06.2021, 15:36  [ТС] 4
Это немного другое, мне нужен каскад, чтобы при открытии первого выпадающего списка, я мог сразу выбрать то, что нужно (пройти по нескольким путям), а не так, зашел в одну ячейку выбрал, одно, в следующей ячейке подгруппу и т.д.
0
556 / 367 / 163
Регистрация: 09.01.2017
Сообщений: 1,138
10.06.2021, 16:28 5
VID1234, допустим я сделаю Вам этот каскад, что дальше с ним делать?
куда конечное значение записывать?
где вообще его вставлять?
Каждый контрагент это отдельный лист?
0
0 / 0 / 0
Регистрация: 10.02.2020
Сообщений: 22
10.06.2021, 17:18  [ТС] 6
КостяФедореев, Здравствуйте. В прикрепленном файле есть Лист1, На этом листе есть таблица, там есть колонка с наименованием, туда должно подставиться Наименование, которое мы выберем в выпадающем списке, а Цена будет выбрана в колонку цена. Можно это сделать и формой, допустим справа от таблицы кнопка заполнить значения, нажимаем, выбираем и подставляем, а можно и выпадающим списком, если получится. вид листов с контрагентами я могу изменить, допустим цены (их там 3) будут размещаться не в колонках, а в строках, т.е. будет наименование (ячейка объединена из 3 строк), дальше градация Цена1, Цена2, Цена3, да каждый контрагент это отдельный лист.
0
556 / 367 / 163
Регистрация: 09.01.2017
Сообщений: 1,138
10.06.2021, 17:22 7
Цитата Сообщение от VID1234 Посмотреть сообщение
ячейка объединена
это зло! не надо объединять!

позже промежуточный вариант покажу. будем посмотреть так ли нужно...
0
0 / 0 / 0
Регистрация: 10.02.2020
Сообщений: 22
10.06.2021, 17:35  [ТС] 8
КостяФедореев, Хорошо, буду ждать. Спасибо за помощь!
0
556 / 367 / 163
Регистрация: 09.01.2017
Сообщений: 1,138
11.06.2021, 20:23 9
Лучший ответ Сообщение было отмечено VID1234 как решение

Решение

VID1234, работы навалили, вчера не смог доделать...
вот, что получилось

на Лист1 дважды кликайте по ячейке в столбце А, по спискам также двойной клик, чтобы закрыть списки по любому из них правой кнопкой мыши.

делал чисто на вашем файле, к оригиналу может не подойти, нужно будет подгонять.
1
Вложения
Тип файла: rar Что нужно для выпадающего списка (1).rar (63.8 Кб, 17 просмотров)
556 / 367 / 163
Регистрация: 09.01.2017
Сообщений: 1,138
11.06.2021, 20:30 10
Господа уполномоченные (Админы, Модераторы) перекиньте тему в раздел VBA.
0
0 / 0 / 0
Регистрация: 10.02.2020
Сообщений: 22
11.06.2021, 20:45  [ТС] 11
КостяФедореев, Здравствуйте. Ошибка!
0
Миниатюры
Многоуровневый выпадающий список  
556 / 367 / 163
Регистрация: 09.01.2017
Сообщений: 1,138
11.06.2021, 21:01 12
VID1234, какой виндовс стоит и сам ексель?

Добавлено через 23 секунды
У меня на 32 и 64 работает..
0
556 / 367 / 163
Регистрация: 09.01.2017
Сообщений: 1,138
11.06.2021, 21:02 13
так выглядит
0
Миниатюры
Многоуровневый выпадающий список  
0 / 0 / 0
Регистрация: 10.02.2020
Сообщений: 22
11.06.2021, 21:07  [ТС] 14
КостяФедореев, 2007, винда 10 64. Во вторник на работе попробую там 2019 офис. Спасибо. Отпишусь, о Вашей работе.
0
733 / 435 / 148
Регистрация: 22.12.2015
Сообщений: 1,308
12.06.2021, 00:05 15
На 2019/win10/64бит работает.

Не по теме:

Цитата Сообщение от VID1234 Посмотреть сообщение
2007
Золотое время: доллар по 25 рублей, Win хр и два года до выхода Windows 7.

0
3437 / 2102 / 697
Регистрация: 02.11.2012
Сообщений: 5,491
14.06.2021, 09:53 16
2007, Win7-64
0
Изображения
 
556 / 367 / 163
Регистрация: 09.01.2017
Сообщений: 1,138
15.06.2021, 09:16 17
Vlad999, думаю нужно убрать явное объявление переменной hdc, в этой процедуре
Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub ConvertUnits()
  Dim hdc 'As LongPtr
    hdc = GetDC(0)
    pixelsperinchx = GetDeviceCaps(hdc, LOGPIXELSX)
    pixelsperinchy = GetDeviceCaps(hdc, LOGPIXELSY)
    ReleaseDC 0, hdc
    pointsperinch = Application.InchesToPoints(1)
    zoomratio = ActiveWindow.Zoom / 100
End Sub
в модуле лежит, увы проверить не на чем...
0
0 / 0 / 0
Регистрация: 10.02.2020
Сообщений: 22
15.06.2021, 10:01  [ТС] 18
КостяФедореев, Доброе утро! Работает. Спасибо, а подскажите, а как еще допилить, чтобы вставлялось наименование номенклатуры, т.е. выбираем из многовыпадающего списка цену и вместе ч ценой вставляется в столбец А, наименование, которое мы выбрали в первом списке.
0
3437 / 2102 / 697
Регистрация: 02.11.2012
Сообщений: 5,491
15.06.2021, 10:50 19
Лучший ответ Сообщение было отмечено VID1234 как решение

Решение

Цитата Сообщение от КостяФедореев Посмотреть сообщение
думаю нужно убрать явное объявление переменной hdc
помогло.

Добавлено через 5 минут
VID1234, вместо MsgBox пропишите ячейку куда вставлять (по аналогии верхней строчки)
Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    If ListBox1.ListCount = 0 Then Cancel = True
 
    Sheets("Лист1").Cells(ActiveCell.Row, 4) = ListBox1.Value
    MsgBox Level1.ListBox1.Value
    Unload Level1
    Unload Level2
    Unload Level3
End Sub
1
0 / 0 / 0
Регистрация: 10.02.2020
Сообщений: 22
15.06.2021, 13:04  [ТС] 20
Vlad999, Спасибо, попробую!
А как еще сделать, чтобы макрос начал действовать с привязкой к определенной ячейке и до конца определенной ячейке, т.е. у нас допустим в этом же листе есть объединённая ячейка Товары, вот и было бы привязка к наименованию этой ячейки.
Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
'Application.ScreenUpdating = False
Dim U As Range
Set U = Sheets("Лист1").Range("от ячейки с текстом "Товары":до ячейки с наименованием "Работа"")
If Not Intersect(Target, U) Is Nothing Then
Level1.Show
End If
'Application.ScreenUpdating = True
End Sub
Просто у меня в этой форме, заказ будет еще распределятся по категориям, Товары, работы и прочее, причем заполнятся будет как выше области товары, так и ниже области товары, но там заполнение будет по другому выпадающему списку, простой выпадающий список, с ссылкой на один лист, где нет градации по ценам, просто выбрали номенклатуру и у нас автомтаом подтянулась цена!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2021, 13:04

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Выпадающий список
Нашел пример в интернете, а как его повторить и приспособить к своему случаю не знаю... Нужно...

Выпадающий список
Друзья, подскажите, пожалуйста, как сделать выпадающий список чтобы было видно, что это выпадающий...

Выпадающий список
Добрый день. Как в екселе сделать на ячейку возможность, что бы при ее выделении появлялась...

Выпадающий список
Подскажите пожалуйста с решением проблемы.Создал выпадающий список в ячейке источником данных...

Выпадающий список - фильтр
Всем здравствуйте. Вопрос в следующем: В ячейке A1 сделать выподающий список - филтр. ...

выпадающий список и диаграмма
Добрый день, в столбцах идут месяцы, в строках клиенты с их отгрузками по месяцам. Подскажите,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.