Новости:

Прикрепить к сообщению можно только файлы xls, gif, jpg, rar, zip,7z, bas, frm, cls, doc размером до 150 Кб.

Главное меню

Автозавершение ввода из таблицы

Автор vasya00, 21.07.2019, 22:35

« назад - далее »

vasya00

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

boa

Здравствуйте,
надо изменить макрос 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
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра