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

Обмен опытом => Microsoft Excel => Тема начата: vasya00 от 21.07.2019, 22:35

Название: Автозавершение ввода из таблицы
Отправлено: vasya00 от 21.07.2019, 22:35
Здравствуйте, пытаюсь сделать электронный список назначений, там будут перечислены лекарства, список их в принципе ограничен хотя и не мал. Было бы удобнее использовать автозавершение ввода по первым буквам. Нашёл старую тему с готовым решением https://forum.msexcel.ru/index.php?topic=1538.0 пытаюсь разобраться с кодом, кое что даже удалось дополнить. Сделал запрос для подтверждения добавления нового лекарства в список.
Сейчас озадачился идеей сортировать список лекарств по частоте использования. Теоретически можно при каждом выборе лекарства из списка, прибавлять один к значению в соседнем столбце, и сортировать по убыванию. Никак не могу понять где в коде ячейка с выбранным лекарством, чтобы в соседнюю прибавить 1.
Название: Re: Автозавершение ввода из таблицы
Отправлено: boa от 22.07.2019, 09:05
Здравствуйте,
надо изменить макрос 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