Страницы: Пред. 1 2 3 4 След.
RSS
Выпадающий список с возможностью поиска внутри списка
 
Уважаемые форумчане, я всё по тому же сообщению #53. Всё работает прекрасно.
Подскажите пожалуйста, какие изменения нужно внести в код, чтобы поиск производить с таблицы, где результатами являются значения формул?
Код
Private Sub TextBox1_Change()
    Dim X, i, txt As String, lt, s As String
    If Len(TextBox1.Text) = 0 Or bu Then Exit Sub
    txt = TextBox1.Text
    lt = Len(TextBox1.Text)
    X = Sheets("Прайс с поиском").Columns(5).SpecialCells(2).Value
    For i = 1 To Sheets("Прайс с поиском").Cells(Rows.Count, 5).End(xlUp).Row
        If InStr(1, UCase(Sheets("Прайс с поиском").Cells(i, 5)), UCase(TextBox1.Value)) > 0 Then s = s & X(i, 1) & "~" 'формирует по сочетанию букв в любом месте текста
     Next i
    ListBox1.List = Split(s, "~")
   End Sub
 
,может вообще удалить if? Сейчас выглядит странно: Если ячейка пустая и Не пустая.
Тут должно быть "или", ну или вообще не должно быть условия т.к. вы охватываете все варианты и пусто и НЕпусто.
невозможное делаем сразу, чудо - требует небольшой подготовки.
 
phelex, нужны все варианты и пусто и НЕпусто, какие в таком случае нужно внести изменения?
И вот вопрос, сообщение #61, чтобы поиск производить с таблицы, где результатами являются значения формул?
 
Здравствуйте! Подскажите пожалуйста как связать между собой боксы, либо альтернативное решение, задача:
есть список категорий и к каждому списку категорий есть свой список (к примеру категория Томат и список сортов к нему.
по итогу в таблице ввода нужно чтобы можно было вводить категории из всех имеющихся с возможностью поиска по части слова. В соседнем столбце Сорт при вводе из списка значений с возможностью поиска выводился и использовался только список соответствующий указанной Категории.
пример: в столбце таблицы Категория указал Томат, в соседнем столбце использовался список Сортов только Томата.

заранее спасибо!
 
Добрый день. помогите пожалуйста не работает...
сам макрос пытался вставить в лист ЦППН в РМЦ, но постоянно ошибка.
с чем связано не пойму.
Нужно что бы список выпадающий появлялся в ячейках "Ответственный за подготовку" и "Ответственный за проведение" данные для списка на листе "Для работы"
Изменено: borisenko2009 - 06.06.2022 18:24:06
 
А где на листе ТекстБокс и ЛистБокс? Вы же в коде обращаетесь к объектам, которые отсутствуют.
 
Цитата
написал:
А где на листе ТекстБокс и ЛистБокс? Вы же в коде обращаетесь к объектам, которые отсутствуют.
Добрый вечер. не могу понять о чем вы? вроде раньше брал пример подставлял под себя. Работало... Сейчас не хочет

Вроде же я указал лист от куда нужно брать данные.
А вот куда их подставлять в конкретный лист не могу понять как сделать.
------
не как не могу понять как на листе создать TextBox и listbox. понял что в коде ошибка что переменные указаны для не существующий объектов.
Изменено: borisenko2009 - 11.05.2022 21:22:56
 
Добрый вечер! Значит в примере, с которым Вы работали, эти контролы TextBox1 и ListBox1 на листе имелись. А в прикреплённом файле их нет. Попробуйте добавить их на лист.
 
Цитата
написал:
Добрый вечер! Значит в примере, с которым Вы работали, эти контролы TextBox1 и ListBox1 на листе имелись. А в прикреплённом файле их нет. Попробуйте добавить их на лист.
вот эти данные тоже есть на листе
Код
Private Sub TextBox1_change()
    Dim X, i, txt As String, lt, s As String, sn As String, NomStolbDan As Long
    sn = "Данные" ' Имя листа с данными
    If Len(TextBox1.Text) = 0 Or bu Then Exit Sub
    txt = TextBox1.Text
    lt = Len(TextBox1.Text)
    NomStolbDan = ActiveCell.Column
    X = Sheets(sn).Columns(NomStolbDan).SpecialCells(2).Value
    For i = 1 To Sheets(sn).Cells(Rows.Count, NomStolbDan).End(xlUp).Row
        If InStr(1, UCase(Sheets(sn).Cells(i, NomStolbDan)), UCase(TextBox1.Value)) > 0 Then s = s & X(i, 1) & "~" 'формирует по сочетанию букв в любом месте текста
        'If UCase(txt) = UCase(Mid(Sheets("Данные").Cells(i, NomStolbDan), 1, lt)) Then s = s & X(i, 1) & "~" 'формирует по сочетанию букв в начале текста
    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
 
Причем тут данные? И не на листе, а в модуле листа. Это не данные - это тексты макросов. А я говорю Вам про объекты.
 
Форма с поиском по маске. Как найти и получить одно или несколько значений
Код попроще: Форма пользователя. При вставке из формы в ячейку выделяется диапазон нескольких ячеек
Изменено: Jack Famous - 12.05.2022 09:26:43
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
написал:
Причем тут данные? И не на листе, а в модуле листа. Это не данные - это тексты макросов. А я говорю Вам про объекты\
Добрый вечер форму TextBox1 и ListBox1. Добавил на лист. Понял в чем проблема. Но дальше опять ошибки... Начинаю вводить данные а имена не те выходят, а иногда выпадает ошибка.
Подскажите пожалуйста куда смотреть еще?
Изменено: borisenko2009 - 15.05.2022 22:37:42
 
Уважаемые форумчане! Очень вас прошу помочь в моем вопросе. Прошу более опытных пользователей дать вектор движения по которому двигаться. Очень надеюсь на Вас. Заранее большое спасибо Вам.
Изменено: borisenko2009 - 19.05.2022 22:14:39
 
Код
     X = Sheets("Для работы").Columns(NomStolbDan).SpecialCells(2).Value
    For i = 1 To UBound(X)
        If InStr(1, UCase(X(i, 1)), UCase(TextBox1.Value)) > 0 Then
измени предел цикла
Изменено: Александр Моторин - 19.05.2022 23:22:57
 
Цитата
написал:
  X = Sheets("Для работы").Columns(NomStolbDan).SpecialCells(2).Value    For i = 1 To UBound(X)        If InStr(1, UCase(X(i, 1)), UCase(TextBox1.Value)) > 0 Then
Добрый вечер.
В таком виде работает.
Спасибо.

Изменено: borisenko2009 - 24.05.2022 19:17:17
 
Возник вопрос, а можно ли сделать так , что если данных которые вносятся в эту форму нет в источнике, что бы они автоматом добавлялись в источник?
Заранее спасибо за ответ.
 
Посмотрите в "Приемах" статью про выпадающий список с добавлением. Там же есть список и с удалением использованных , а также с поиском.
 
Добрый день уважаемые форумчане.

На днях создавал прйс-лист с использованием выпадающего списка (далее - ВС)
ВС необходим с автопоиском в ячейке.

Задача такая: При наборе текста (или любых знаков которые имеются в выпадающем списке) в ячейке с заранее настроенным ВС , Excel сам разворачивает список и показывает только те позиции в списке которые содержат искомый символ (или сочетание символов) . По мере набора текста список сокращается до тех пор пока не достигнет уникальности (т.е. пока не останется единственная позиция соответствующая запросу)

И да, конечно, такая задача не один раз описывалась на форуме и на данном ресурсе. И решений есть куча
Но тупик ситуации в том, что данная задача была реализована и успешно работала! При чём реализована была самый простым способом т.е. через "Данные - проверка Данный - Список" без использование каких-либо макросов, формул, танцев, с бубном и т.д.
И успешно работало с базой данный на более чем 2000 позиций.

Работал я на только купленном, "свежем" ПК с установленным "Office 365 Business"
Но в один момент автопоиск работать перестал после того, как тот же файл был открыт через облако и пере сохранён на другом, личном,  ПК.
Версия "Офис" на всех ПК стоит "Office 365 Business"
После пере-сохранения ни на одном ПК автопоиск работать перестал .... фантастика.

И я бы не против заморозиться и применить один из методов описанных на данном ресурсе, но зачем, если оно и так работало прекрасно ...
Т.е повторюсь,"Офис" уже был с допиленными возможностями автопоиска ВС. И что случилось - хз то ли  обновился офис как-то криво, толи настройка какая-то слетела.

Если кому-то покажется историей выдуманной  или шуткой - прошу воздержаться от комментариев.
Прошу помочь советом : кто сталкивался с подобной ситуацией и как вернуть всё обратно.
Спасибо заранее.

Пример во вложении.  
 
najrobi,

Не уверен, что еще актуально конкретно для вас, но тем не менее делюсь с вами и потомками своим решением.

Реализованы связанные выпадающие списки с сортировкой по алфавиту и выводом уникальных значений, я под себя кастомил еще больше его, это базовая версия на основе вашего примера
 
Всем привет, решил оживить тему...
Помогите плиз!

Не могу никак дойти до того, чтобы обращаться к умной таблице, а не к определённым столбцам.

Или же если нельзя обращаться к УТ для внесения данных из другого листа, то хотя бы к разным столбцам.

К примеру если мне необходимо заполнить ячейку (или диапазон J2:J500), то мне всё равно необходимо брать данные из таблицы A?
Это переменная NomStolbDan = ActiveCells.Column мне не очень понятна.

Диапазон для выпадающего списка определен ренжом:
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("E2:E500, K2:P500")) Is Nothing Then
        If Target.Value <> "" Then: Me.TextBox1.Visible = False: Me.ListBox1.Visible = False: Exit Sub
Переменные объявлены как и в примере следующие:
Код
   Dim X, i, txt As String, lt, s As String, sn As String, NomStolbDan As Long
    sn = "Данные" ' Имя листа с данными
    'If Len(TextBox1.Text) = 0 Or bu Then Exit Sub
    txt = TextBox1.Text
    lt = Len(TextBox1.Text)
    NomStolbDan = ActiveCell.Column
    X = Sheets(sn).Columns(NomStolbDan).SpecialCells(2).Value
    For i = 1 To Sheets(sn).Cells(Rows.Count, NomStolbDan).End(xlUp).Row
        If InStr(1, UCase(Sheets(sn).Cells(i, NomStolbDan)), UCase(TextBox1.Value)) > 0 Then s = s & X(i, 1) & "~" 'формирует по сочетанию букв в любом месте текста
        'If UCase(txt) = UCase(Mid(Sheets("Данные").Cells(i, NomStolbDan), 1, lt)) Then s = s & X(i, 1) & "~" 'формирует по сочетанию букв в начале текста
    Next i
    ListBox1.List = Split(s, "~")
Внимание вопрос!
1. Как необходимо отредактировать код, чтобы для диапазона выпадающего списка столбца "L2:L500"  в листе "Основной лист" отображались данные с листа "Данные" со столбца умной таблицы (либо же с конкретного столбца "M"?
2. Как необходимо отредактировать код, чтобы для диапазона выпадающего списка столбца "M , P" (столбцы не рядом друг с другом) в листе "Основной лист" отображались данные с листа "Данные" со столбца умной таблицы (либо же с конкретного столбца "N"?)

Если необходима дополнительная информация пример во вложении (выпадающий список помечен жёлтым), ну и я тут :)
Изменено: Dzhode - - 18.01.2023 14:18:33
 
Вы выбрали конечно очень мудренный вариант, потому так все сложно кажется, по макросу видно что выпадающий список формируется для 12 столбца из 12 столбца данные и никак иначе. Вам же нужно по другому, значит в логике нужно заложить соотношение столбцов.
 
Цитата
написал:
Вы выбрали конечно очень мудренный вариант, потому так все сложно кажется, по макросу видно что выпадающий список формируется для 12 столбца из 12 столбца данные и никак иначе. Вам же нужно по другому, значит в логике нужно заложить соотношение столбцов
Заложить их для переменной X? То есть в X написать Лист.НаименованиеУт.Ренж?
Плохо понимаю что вы имеете в виду, говоря общими фразами
 
Код
NomStolbDan = ActiveCell.Column 

Вот к примеру вы назначаете что список берете со столбца точно такого же как на активном листе, а Вам нужен другой
типа
Код
 if ActiveCell.Column=12 then NomStolbDan =13 
 
Спасибо, мысль уловил.

Вот только до конца не доходит, как отредактировать код для нескольких ренжей?
E2:E500 "Основной лист" -> NomStolbdan = 13,
F2:F500 "Основной лист -> NomStolbdan = 14,
G2:G500 "Основой лист" -> NomStolbdan = снова 13)  
 
Код
select case activecell.column
case 5,7
   NomStolbDan =13
case 6
   NomStolbDan =14
end select
 
Спасибо вам огромное! Очень помогли!
 
Famous Goose, как активировать прокрутку списка? отмену окна со списком через "Esc" и активацию её нажатием на ячейку?
Прошу помочь.
Изменено: Morphеus - 17.02.2023 09:01:07
 
Цитата
написал:
Не уверен, что еще актуально конкретно для вас, но тем не менее делюсь с вами и потомками своим решением.Реализованы связанные выпадающие списки с сортировкой по алфавиту и выводом уникальных значений, я под себя кастомил еще больше его, это базовая версия на основе вашего примера
Актуально для всех. Это лучшее решение.
 
Цитата
написал:
Здравствуйте. А комбобокс не устраивает?
Здравствуйте!

Сможете помочь с комбобоксом? Я в макросах "чайник") Не могу никак разобраться.

Прикрепила файл. В листе под названием "Лист 2" ячейка отмечена желтым. Можно ли сделать выпадающий список (начинаем вводить, а нам уже предлагаются варианты), который будет транслирован из "Лист 1" диапазона столбца С?

Заранее благодарна!
Изменено: Bellasmm - 05.07.2023 23:24:59
 
Добрый день, уважаемые форумчане. Макросами раньше не пользовался. Вставил код в свой файл, возникает ошибка на отсутствие TextBox1. Очень вас прошу помочь в моем вопросе.
Страницы: Пред. 1 2 3 4 След.
Наверх