• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Событие Change

  • Автор темы WolfOfTambov
  • Дата начала
W

WolfOfTambov

Здрасте товарищи. Есть такой код.
Код:
Private Sub UserForm_Initialize()
'список плавких вставок
With Combo_PPN
.AddItem "ППН200"
.AddItem "ППН400"
.AddItem "ППН500"
.AddItem "ППН630"
End With
'выводим значение текущих уставок
With UserForm1
.Combo_ty.Value = Range("G4")
.Combo_Kots.Value = Range("отсечка")
.Combo_Diap.Value = Range("диапазон")
.Combo_Iy.Value = Range("E4")
.Combo_PPN.Value = Range("вставка")
.Combo_umnt.Value = Range("коэфф_врем_текст")
.Combo_Un.Value = Range("U_1")
.Combo_Str.Value = Range("Sном")
.Combo_RelePKL = Range("ПКЛ")
.Combo_TipTr = Range("тип_тр")
End With
End Sub

Private Sub Combo_PPN_Change()
'изменяем график плавкой вставки
Worksheets("формулы").Activate
Range("вставка").Value = Combo_PPN.Value
PPN
End Sub

При загрузке формы создаются поля комбосписка Combo_PPN, и ему присваивается значение из ячейки"вставка". При выборе какого-либо значения из списка это значение записывается в ячейку "вставка" и выводится соответствующий график (процедура PPN).
Проблема в том, что событие Change наступает при любом изменении комбосписка, в том числе и при создании полей при запуске формы. Нельзя ли сделать так, чтоб оно наступало только при выборе значения из списка?
 
A

alex77755

Код:
Dim RED As Boolean

Private Sub ComboBox1_Click()
If Not RED Then
MsgBox "Ok"
End If
End Sub

Private Sub UserForm_Initialize()
Dim i
RED = True
For i = 1 To 10
ComboBox1.AddItem i
Next i
RED = False
End Sub
 
A

alex77755

Я же не знаю какое событие вы используете. А если попробовать, то можно увидеть, что при выборе из списка события Change не наступает. Наступает только клик. А вот если пробовать писать в окне то будет чанге. Комбик чаще используют именно для выбора из списка поэтому и клик
 
W

WolfOfTambov

может быть, дело в чем?
или вот в чем
Код:
'выводим значение текущих уставок
With UserForm1
.Combo_ty.Value = Range("G4")
.Combo_Kots.Value = Range("отсечка")
.Combo_Diap.Value = Range("диапазон")
.Combo_Iy.Value = Range("E4")
.Combo_PPN.Value = Range("вставка")
.Combo_umnt.Value = Range("коэфф_врем_текст")
.Combo_Un.Value = Range("U_1")
.Combo_Str.Value = Range("Sном")
.Combo_RelePKL = Range("ПКЛ")
.Combo_TipTr = Range("тип_тр")
End With
 
A

alex77755

Ну да, здесь событие изменение, а не клик.
Но в таком режиме я практически никогда не использую комбо.
Он для этого и придуман. Не вписывать значения, а выбирать из списка.
В крайнем случае добавлять в список но не вписывать.
Даже часто задают вопрос как запретить ручной ввод в поле текстбокса
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!