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