Профессиональные приемы работы в Microsoft Excel

Пожалуйста, войдите или зарегистрируйтесь.


Расширенный поиск  

Новости:

Читайте новые сообщения форума форума в RRS-агрегаторах

Автор Тема: Автозавершение ввода из таблицы  (Прочитано 1725 раз)

0 Пользователей и 1 Гость просматривают эту тему.

vasya00

  • Новичок
  • *
  • Уважение: +0/-0
  • Оффлайн Оффлайн
  • Сообщений: 1

Здравствуйте, пытаюсь сделать электронный список назначений, там будут перечислены лекарства, список их в принципе ограничен хотя и не мал. Было бы удобнее использовать автозавершение ввода по первым буквам. Нашёл старую тему с готовым решением https://forum.msexcel.ru/index.php?topic=1538.0 пытаюсь разобраться с кодом, кое что даже удалось дополнить. Сделал запрос для подтверждения добавления нового лекарства в список.
Сейчас озадачился идеей сортировать список лекарств по частоте использования. Теоретически можно при каждом выборе лекарства из списка, прибавлять один к значению в соседнем столбце, и сортировать по убыванию. Никак не могу понять где в коде ячейка с выбранным лекарством, чтобы в соседнюю прибавить 1.
Записан

boa

  • Глобальный модератор
  • Старожил
  • *****
  • Уважение: +32/-0
  • Оффлайн Оффлайн
  • Сообщений: 597
  • Доброта спасет мир...
Re: Автозавершение ввода из таблицы
« Ответ #1 : 22.07.2019, 09:05:04 »

Здравствуйте,
надо изменить макрос AddFIO
Private Sub AddFIO(Text As String)
  'если введено новое ФИО, то добавляем его без спроса в "Список"
Dim oRng As Range, lReply&
    If Application.WorksheetFunction.CountIf([ФИО], Text) = 0 Then
        lReply = MsgBox("Добавить введенное имя " & _
                         Target & " в выпадающий список?", vbYesNo + vbQuestion)
        If lReply = vbYes Then
            Set oRng = Sheets("Список").[A65536].End(xlUp).Offset(1, 0)
            oRng.Value = Text
            Me.ComboBox1.ListFillRange = "ФИО" 'перезагрузка списка поля
        Else
            Exit Sub
        End If
    Else
        Set oRng = Sheets("Список").Columns(1).Find(Text, LookIn:=xlValues, LookAt:=xlWhole)
    End If
    oRng.Offset(0, 1) = oRng.Offset(0, 1) + 1
End Sub
и закомментировать строку прибавления числа в процедуре ComboBox1_LostFocus
Записан
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра
 



Темы без ответов

27.05.2022 14:38 конструкция из Shape 255
09.08.2019 14:09 Макрос для заполнения таблиц через форму 5154
18.07.2019 16:02 Рассылка почты из Excel при помощи почтовой программы TheBAT! 4538
07.02.2019 01:36 Как удалить дубликаты из выпадающего связанного списка? 6118
03.03.2018 00:00 Подсчет отработанного времени, за исключением заранее определенных перерывов 3212
23.05.2017 11:20 Копирование данных из одной таблицы в умную таблицу по условию 5038
15.03.2017 15:45 автозамена картинок PowerPoint 3947
11.03.2017 13:43 Изменить нумерацию страниц 3885
07.02.2017 18:43 Блокировка ячеек по наступлению даты 3001
28.08.2016 19:29 Одинаковые заголовки после обновления оглавления 3491





Яндекс цитирования msexcel.ru Яндекс.Метрика

Страница сгенерирована за 0.1 секунд. Запросов: 101.