Страницы: Пред. 1 2 3 4 След.
RSS
Выпадающий список с возможностью поиска внутри списка
 
Добрый день, а давайте поднимем тему и порассуждаем как можно было бы сделать данное решение еще более удобным для использования:

Друзья, подскажите пожалуйста как можно сделать:
1) Поддержку значений не из справочника т.е. в данной версии список позволяет выбрать только данные из справочника, как можно сделать, что бы возможно было выбрать не только вариант из справочника, но и вписать свой?
2) Возможно как то сделать переход к следующей строке через Entrer? В данной версии выбрать вариант можно только мышкой, и перейти к следующей строке тоже.

Тема актуальная т.к. может быть применена практически везде при достаточном наборе функций.

Спасибо
невозможное делаем сразу, чудо - требует небольшой подготовки.
 
Добрый день! Простите пож, а можно ли сделать так, чтобы листбокс показывал сразу весь список, а когда в тексбоксе появляется значение уже делал выборку? Спасибо.
 
ajushki, Теперь доступный список показывает сразу)
 
Добрый день, коллеги.
А как управлять местом появления текст бокса? Мне нужно чтоб он появлялся в 2 определенных ячейках (в худшем случае в 2-х столбцах, либо строках). В остальных он мне мешает.
Делаю автоматизацию заполнения заявлений на отпуск, о переводе, о замещении и т.д. На отпуск с помощью актив икс разобрался как сделать. Начал делать о переводе, там нужно 2 людей разных вписывать...сделал но при работе с заявлением не удобно, когда ты тыкаешь в любую клеточку а у тебя всплывает окно.
В вба вообще 0, до этого все вопросы формулами удавалось решать.
 
nkd2006,  там в коде наверняка есть что-то вроде address, вот его и проверяйте. Точнее не скажу, ибо Вы не сказали о чём вообще идёт речь.
 
Цитата
nkd2006 написал:
нужно чтоб он появлялся в 2 определенных ячейках
См. вариант. "Определённые" ячейки в файле залиты жёлтым.
 
Доброе утро.
Прошу прощения, что сразу не предоставил файл. Взял за образец "комбокс 2" выложенный gling с первой страницы и применил его под свои нужны.
Единственно мне нужно, чтобы комбокс был не в столбцах с A по K, а в 2-х конкретных ячейках например с10 и h7. (на вкладке table выделены желтым цветом). Формы заявлений разные, поэтому хочу разобраться что и где нужно менять, чтобы получить нужное количество комбоксов в нужных мне местах
Спасибо.
 
Цитата
Юрий М написал:
См. вариант. "Определённые" ячейки в файле залиты жёлтым
Спасибо большое.
Разобрался. что к чему.
 
Доброе утро, коллеги.
В этом файле настроено что каждому столбцу на рабочем листе соответствует столбец со списком на другом листе.
А если нужно сделать, чтобы в ячейке например c1 - был список со столбца "c" с листа данные, в ячейке с2 - список столбца "b" с листа данные, в ячейке c3 был список столбца "f" с листа данные.
Как сделать списки только в ячейках с1, 2, 3 я разобрался, а вот дальше не получается.
Спасибо
 
Цитата
nkd2006 написал:
чтобы в ячейке например c1 - был список со столбца "c" с листа данные, в ячейке с2 - список столбца "b" с листа данные, в ячейке c3 был список столбца "f" с листа данные.
- там в коде есть уже описывавшаяся выше строка
Код
NomStolbDan = ActiveCell.Column

Вот её и используйте. Только естественно вместо ActiveCell.Column нужно брать ActiveCell.Row
 
Цитата
Hugo написал:
Вот её и используйте. Только естественно вместо ActiveCell.Column нужно брать ActiveCell.Row
Спасибо за совет Hugo. Вся беда в том, что я пока не понимаю как её использовать. Макросами раньше не пользовался, запланировал обучиться основам, но результат нужен уже сегодня. Если вы подскажите, буду вам очень благодарен.
 
Добрый день, коллеги.
Подскажите есть ли возможность сделать зависимые выпадающие списки с поиском внутри каждого списка.
Пример во вложении.
В B2 список с поиском уже сделан. В B3 хочется сделать такой же список с поиском в зависимости от значения в ячейке B2.
По форуму поискал, подобного ничего не нашел.
 
Добрый день!

Спасибо за классное решение по выбору из списка.

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

Есть варианты для решения данной проблемы?
 
Приложите пример файла.
 
невозможное делаем сразу, чудо - требует небольшой подготовки.
 
Приложил файл, который уже здесь загружали, но закрепил верхнюю строку. глюк может возникнуть в любой ячейке, где выпадает список. приходится иногда по нескольку раз кликать по ячейке, пока появляется возможность выбора из списка.
 
https://www.planetaexcel.ru/techniques/1/9645/
 
purpik,спасибо. но это не совсем то, что нужно. нужно так, как в прикреплённом мной файле.
 
Цитата
najrobi написал:
закрепил верхнюю строку. глюк может возникнуть в любой ячейке, где выпадает список.
Тоже сталкивался с таким поведением КомбоБокса, если закреплял верхнюю строку. Пришлось отказаться от закрепления.
 
Добрый день! Спасибо за крутое решение по выбору из списка!  
При реализации у меня возникает ошибка.  Точнее - в рабочем поле 3 ячейки и в каждую из них подбор своих данных. 2 работают нормально, а одна - выдает ошибку. Проблема видимо в том, что она ссылается не на статичные данные, а на базу данных, которая постоянно пополняется. Ну или в том, что она ссылается на столбец внутри умной таблицы. Не понимаю,что ей не нравится. Помогите, пожалуйста, исправить ошибку
 
1. В этом примере если в столбце L будет пустая строка - то макрос не видит данные из этого столбца, как это исправить?

2. Если в ячейку введены данные выбранные из списка, а затем удалены чтоб например ввести другие из списка, чтоб появилось поле с выбором надо уйти с этой ячейки на другую и вернутся на нужную тогда происходит повторная активация и можно выбрать.
Как сделать чтоб при удалении данных сразу активировался список для выбора новых?
 
Kostroma, воообще не понял откуда данные для комбобокса
 

Друзья, а возможно макросы КомБокс.xlsm перенести в PERSONAL.xlsb?

В приложенном файле слегка изменил поиск – теперь он ищет и с начала строки и после пробелов (напр. по «Сумки» найдет «г. Тобольск, п. Сумкино, ул. Пушкина, д. 999» и подобные)

Но при переносе кода в личную книгу столкнулся с 2-мя проблемами:

1.       Без указания имени файла книги не запускаются ListBox1 и TextBox1 - где его взять?

2.       При указании - боксы появляются, но не работают процедуры TextBox1_Change() и ListBox1_Click().

Код в PERSONAL.xlsb в ЭтаКнига (после отключения 3-х процедур в example.xlsm боксы только показывает):

Код
Private WithEvents App As Application
Dim bu As Boolean
Dim Sh As Worksheet

Dim WBN As String

Private Sub Workbook_Open()
Set App = Application
End Sub

Private Sub App_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
If Not Sh.Name = "fin" Then Exit Sub

If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("C3:C10000")) Is Nothing Then 'serg20200105 "A2:A3000"
If Target.Value <> "" Then: Workbooks("example.xlsm").Worksheets("fin").TextBox1.Visible = False: Workbooks("example.xlsm").Worksheets("fin").ListBox1.Visible = False: Exit Sub
bu = True
With Workbooks("example.xlsm").Worksheets("fin").TextBox1
.Top = Target.Top
.Left = Target.Left
.Height = Target.Height
.Width = Target.Width
.Text = Target.Value
.Activate
End With
With Workbooks("example.xlsm").Worksheets("fin").ListBox1
.Top = Target.Top
.Left = Target.Left + Target.Width
.Width = 420
.Clear
End With
bu = False
Workbooks("example.xlsm").Worksheets("fin").TextBox1.Visible = True
Workbooks("example.xlsm").Worksheets("fin").ListBox1.Visible = True
Else
Workbooks("example.xlsm").Worksheets("fin").TextBox1.Visible = False
Workbooks("example.xlsm").Worksheets("fin").ListBox1.Visible = False
End If
End Sub

Private Sub TextBox1_Change()
Dim X, i, i_end, txt As String, s As String
If Len(TextBox1.Text) = 0 Or bu Then Exit Sub
txt = TextBox1.Text
X = Worksheets("Списки").Columns(1).SpecialCells(2).Value
i_end = Worksheets("Списки").Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To i_end
If UCase(txt) = UCase(Mid(Worksheets("Списки").Cells(i, 1), 1, Len(txt))) _
Or InStr(1, UCase(Worksheets("Списки").Cells(i, 1)), UCase(" " & TextBox1.Value)) > 0 _
Then s = s & X(i, 1) & "~" 'Serg20200105
Next i
ListBox1.List = Split(s, "~")
End Sub

Private Sub ListBox1_Click()
If ListBox1.ListIndex = -1 Then Exit Sub
bu = True
ActiveCell.Value = ListBox1.Value
Me.TextBox1.Visible = False
Me.ListBox1.Visible = False
bu = False
End Sub

Изменено: Сергей Че - 13.01.2020 14:46:03
В теме с декабря 19-го
 
gling, классное решение.

Я попробовала адаптировать под свои нужды, все работает отменно.
Только почему-то, когда я переслала файл коллеге, у него выдает ошибку ( Офис стоит у него 2007, у меня 2016, хотя наверное ж не в этом дело)[img]file:///C:/Users/n.solovieva/Desktop/WhatsApp%20Image%202021-03-04%20at%2009.55.43.jpeg[/img]

Торможу знатно, не могу понять, почему ошибка method or data member not found
Изменено: Наталия Соловьева - 04.03.2021 15:20:09
 
А что за ошибка, у меня все работает без ошибок. Офис 2016. Может быть все таки дело в этом:
Цитата
Наталия Соловьева написал:
Офис стоит у него 2007, у меня 2016
"Все гениальное просто, а все простое гениально!!!"
 
Цитата
Nordheim написал:
А что за ошибка, у меня все работает без ошибок. Офис 2016. Может быть все таки дело в этом:
Ошибка method or data member not found и подсвечивает в коде Me.TextBox1
Я уже переслала себе на комп, где стоит 2013, там тоже работает. Т. е может быть такое , что 2007 не работает с какими-то частями...
 
Наталия Соловьева, Excel 2007 Win7 все работает (на Win XP не проверял). Может просто коллега что-то интересное в файле сам сделал?
 
_Igor_61, он открыл на другом компе тоже с 2007 и там заработало. В общем, мистика да и только.

Благодарю всех за ответы, вопрос пока закрыт.
 
Добрый день!
Подскажите пожалуйста (вопросы к сообщению #53), я хочу в ячейке (столбец C:С) с уже имеющимися данными выбрать другие данные. Вопрос заключается в том, что при выборе такой ячейки, не происходит активации КомБокс. Решение только следующее: можно очистить содержимое нужной ячейки, которая содержит данные, кликнуть в любую другую область, снова выбрать нужную и тогда происходит активация КомБокс.
1. Как сделать активацию КомБокс в ячейке, которая уже содержит данные.
2. Заметил, что при поиске бывает формируется список, но не всегда можно выбрать, то есть список не активный. Как такое исправить? В чем может быть ошибка?

Excel 2019 Win10
 
1) в поищите ответ в блоке select, там условие что ячейка пуста
2) у вас закреплена шапка, это вызывает проблему  
невозможное делаем сразу, чудо - требует небольшой подготовки.
 
phelex, спасибо огромное, всё получилось
1. Было:
Код
If Target.Value = "" Then
Исправлено на:
Код
If Target.Value = "" And Target.Value <> "" Then
2. Проблема решена, снятием закрепление областей.
Страницы: Пред. 1 2 3 4 След.
Наверх