Добрый день, Имеются у меня артикулы и цены на них. Хотелось чтобы в одной из ячеек при вбивании первых букв уже был некий выпадающий список, из которого я бы мог выбрать нужный мне артикул ( и чем больше букв я вбиваю , тем список из наименований меньше). Соответственно, после выбора артикула, правее от ячейки выбора появляется цена. Ячейку с выпадающим списком не задавал.
Добрый день, Имеются у меня артикулы и цены на них. Хотелось чтобы в одной из ячеек при вбивании первых букв уже был некий выпадающий список, из которого я бы мог выбрать нужный мне артикул ( и чем больше букв я вбиваю , тем список из наименований меньше). Соответственно, после выбора артикула, правее от ячейки выбора появляется цена. Ячейку с выпадающим списком не задавал.nifra
Выше ведь уже есть ссылка. Если всё сложится - вечером или завтра постараюсь файл показать. Но пока задача не совсем ясна - куда собираетесь эти артикулы вводить? Или откуда брать данные для заполнения?
Выше ведь уже есть ссылка. Если всё сложится - вечером или завтра постараюсь файл показать. Но пока задача не совсем ясна - куда собираетесь эти артикулы вводить? Или откуда брать данные для заполнения?Hugo
Hugo, Допустим в файле, что я выложил. В ячейке D1 на Листе 2 я буду вводить артикул - и в этой же ячейке должен выдаваться уже список согласно нескольким введенным значениям, из которого я буду выбирать нужный мне артикул. на Лист 1 будут исходные данные (артикул и цена). При выборе артикула в ячейке Е1 Листа 2 будет выдаваться цена.
Hugo, Допустим в файле, что я выложил. В ячейке D1 на Листе 2 я буду вводить артикул - и в этой же ячейке должен выдаваться уже список согласно нескольким введенным значениям, из которого я буду выбирать нужный мне артикул. на Лист 1 будут исходные данные (артикул и цена). При выборе артикула в ячейке Е1 Листа 2 будет выдаваться цена.nifra
Сообщение отредактировал nifra - Понедельник, 12.01.2015, 14:52
Есть возможность сделать именно как озвучено - но я сегодня ничем не помогу. Может поздно вечером, если звёзды сойдутся... Есть у меня такой файлик "Поиск по буквам Листбокс Текстбокс, без формы.xls" - вот его можно под задачу заточить. Может кто другой поможет, многие такую задачу уже решали на планете эксель. А там ещё было от Антона "Удобный поиск в выпадающем списке ВЕРСИЯ 12.1" - тоже годится для задачи. И от nerv "DropDownList_1.6_0" можно приспособить.
Есть возможность сделать именно как озвучено - но я сегодня ничем не помогу. Может поздно вечером, если звёзды сойдутся... Есть у меня такой файлик "Поиск по буквам Листбокс Текстбокс, без формы.xls" - вот его можно под задачу заточить. Может кто другой поможет, многие такую задачу уже решали на планете эксель. А там ещё было от Антона "Удобный поиск в выпадающем списке ВЕРСИЯ 12.1" - тоже годится для задачи. И от nerv "DropDownList_1.6_0" можно приспособить.Hugo
AlexM, Интересный вариант, как я понял реализован на макросах. При вводе списка не видишь, но когда ввел пару цифр, уже можешь искать по определенному списку. Почти идеальный вариант, только текста не видно предлагаемого при вводе Hugo, Да, да, у меня тоже такие файлы были, оба, в свое время качал для дела, но сейчас не нашел. Буду ждать вашего варианта также!
AlexM, Интересный вариант, как я понял реализован на макросах. При вводе списка не видишь, но когда ввел пару цифр, уже можешь искать по определенному списку. Почти идеальный вариант, только текста не видно предлагаемого при вводе Hugo, Да, да, у меня тоже такие файлы были, оба, в свое время качал для дела, но сейчас не нашел. Буду ждать вашего варианта также!nifra
Вот этот файл от amfor и есть примерно то, что у меня в "Поиск по буквам Листбокс Текстбокс, без формы.xls" Думаю оптимальный вариант. Правда на 2003 функционал не проверил, не работает Можно доделать чтоб вместо ВПР() оставалось вытянутое значение. Если нужно.
Вот этот файл от amfor и есть примерно то, что у меня в "Поиск по буквам Листбокс Текстбокс, без формы.xls" Думаю оптимальный вариант. Правда на 2003 функционал не проверил, не работает Можно доделать чтоб вместо ВПР() оставалось вытянутое значение. Если нужно.Hugo
Hugo, Где это ВПР поправить ? И Я в макросах не силен, если я добавлю в исходные данные ниже ещё артикулы, они подхватятся или нужно будет увеличивать кол-во строк?
Hugo, Где это ВПР поправить ? И Я в макросах не силен, если я добавлю в исходные данные ниже ещё артикулы, они подхватятся или нужно будет увеличивать кол-во строк?nifra
Уважаемые, кто может подсказать, как перенести данный макрос в другой документ, где изменены имена листов и ячейка, в которой вбиваются данные. Файл большой, сюда не влезает. Может кто-то сделать инструкцию (возможно видео) как это все осуществляется. Потому как, изменяя данные на свои в самом макросе в VB, у меня при вводе никаких предлагаемых вариантов не выводится. Заранее большое спасибо.
Уважаемые, кто может подсказать, как перенести данный макрос в другой документ, где изменены имена листов и ячейка, в которой вбиваются данные. Файл большой, сюда не влезает. Может кто-то сделать инструкцию (возможно видео) как это все осуществляется. Потому как, изменяя данные на свои в самом макросе в VB, у меня при вводе никаких предлагаемых вариантов не выводится. Заранее большое спасибо.nifra
ВПР() поправить проще всего так - включаете рекордер, пишите эту ВПР(), затем копируете результат и вставляете назад как значение. Останавливаете рекордер, используете полученный код. Можете его оптимизировать. Чтоб перенести код в другой файл - просто копируете код из модуля примера в свой модуль листа. В коде меняете имя листа в Worksheets("Лист2") на имя своего листа с базой, а индекс листа в Worksheets(1) на индекс (или название) своего листа с выпадающим списком. И самое главное не забыть - нужно на этот лист скопировать из примера ListBox1 и TextBox1. Это делается при включенном режиме дизайнера.
Второй лист можно смело пополнять - но код берёт данные от третьей строки до последней, это прописано тут: [vba]
[/vba] Кстати перед Rows.Count тоже не помешает точка, на всякий случай и чтоб помнить, что тут может быть подвох...
ВПР() поправить проще всего так - включаете рекордер, пишите эту ВПР(), затем копируете результат и вставляете назад как значение. Останавливаете рекордер, используете полученный код. Можете его оптимизировать. Чтоб перенести код в другой файл - просто копируете код из модуля примера в свой модуль листа. В коде меняете имя листа в Worksheets("Лист2") на имя своего листа с базой, а индекс листа в Worksheets(1) на индекс (или название) своего листа с выпадающим списком. И самое главное не забыть - нужно на этот лист скопировать из примера ListBox1 и TextBox1. Это делается при включенном режиме дизайнера.
Второй лист можно смело пополнять - но код берёт данные от третьей строки до последней, это прописано тут: [vba]
Dim arr(), i& With Worksheets("Egger") arr = .Range(.Cells(3, 1), .Cells(.Cells(Rows.Count, 1).End(xlUp).Row, 1)).Value End With With Worksheets(1).ListBox1 .Clear .List = arr For i = .ListCount - 1 To 0 Step -1 If Not (LCase(.List(i)) Like LCase(TextBox1 & "*")) Then .RemoveItem (i) End If Next .Top = ActiveCell.Top + ActiveCell.Height .Left = ActiveCell.Left .Height = 100 .Width = ActiveCell.Width .Visible = 1
End With End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(ActiveCell, Range("D3")) Is Nothing Then With Me.TextBox1 .Top = ActiveCell.Top .Left = ActiveCell.Left .Height = ActiveCell.Height .Width = ActiveCell.Width .Text = "" .Visible = 1 .Activate End With Else TextBox1.Visible = 0 ListBox1.Visible = 0 End If End Sub
[/vba]
Желтым выделилась сначала 3я, а затем 1 строка отсюда Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(ActiveCell, Range("D3")) Is Nothing Then With Me.TextBox1 Лист с индексом 1 имеет у меня название P, на нем же у меня и будет происходить ввод данных Лист с индексом 2 имеет название Egger, на нем у меня будут исходные данные (артикулы и цены) Ячейку А5 я поменял на D3, так как в листе P у меня в эту ячейку (как бы) вставлено поле ввода. Исходные данные у меня так и начинаются с 3й строки
update Compile Error: Method or data member not found
Hugo, Я сделал так но в итоге выдает ошибку
[vba]
Код
Dim arr(), i& With Worksheets("Egger") arr = .Range(.Cells(3, 1), .Cells(.Cells(Rows.Count, 1).End(xlUp).Row, 1)).Value End With With Worksheets(1).ListBox1 .Clear .List = arr For i = .ListCount - 1 To 0 Step -1 If Not (LCase(.List(i)) Like LCase(TextBox1 & "*")) Then .RemoveItem (i) End If Next .Top = ActiveCell.Top + ActiveCell.Height .Left = ActiveCell.Left .Height = 100 .Width = ActiveCell.Width .Visible = 1
End With End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(ActiveCell, Range("D3")) Is Nothing Then With Me.TextBox1 .Top = ActiveCell.Top .Left = ActiveCell.Left .Height = ActiveCell.Height .Width = ActiveCell.Width .Text = "" .Visible = 1 .Activate End With Else TextBox1.Visible = 0 ListBox1.Visible = 0 End If End Sub
[/vba]
Желтым выделилась сначала 3я, а затем 1 строка отсюда Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(ActiveCell, Range("D3")) Is Nothing Then With Me.TextBox1 Лист с индексом 1 имеет у меня название P, на нем же у меня и будет происходить ввод данных Лист с индексом 2 имеет название Egger, на нем у меня будут исходные данные (артикулы и цены) Ячейку А5 я поменял на D3, так как в листе P у меня в эту ячейку (как бы) вставлено поле ввода. Исходные данные у меня так и начинаются с 3й строки
update Compile Error: Method or data member not foundnifra