Здравствуйте, только начал с VBA, поэтому нужна помощь. При нажатии кнопку "указать зарплату" рождается Userform, в котором необходимо заполнить Textbox и выбрать любую OptionButton. Далее, при нажатии кнопки "ОК", необходимо проверить заполнены ли эти поля и если заполнены записать значения с текстбокса в любую ячейку, если нет - вывести сообщение, что надо заполнить. Заранее спасибо.
эти - это какие? Там вообще только одно поле - TextBox1. Все остальное - это OptionButton. Вы поясните точнее что именно надо проверить. И не пытайтесь писать техническим языком - пишите на человеческом, глядя просто на свою форму. Так всем будет понятнее. Потому сейчас вообще неясно что надо проверить: то ли наличие хоть какого-то значения в TextBox1, то ли наличие выбора хоть какого-то OptionButton. Наличие текста в TextBox1 можно проверить так:
Код
If TextBox1.Value = "" then
msgbox "Не заполнено поле 'Уровень зарплаты'",vbinformation
Exit sub
end if
А наличие выбора одного из представленных OptionButton можно сделать и просто проверкой каждого по отдельности на True. Или, если взять код из Вашего файла, то выглядеть проверка может так:
Код
dim dOpb#
For Each x In Me.Controls
If TypeOf x Is MSForms.OptionButton Then
dOpb = dOpb + Abs(x.Value) 'если будет True(т.е. пункт выбран), то Abs(x.Value) будет равно 1. В противном случае - 0
End If
If TypeOf x Is MSForms.TextBox Then
If x.Value = "" Then
MsgBox "Zapolni Zarplatu"
Exit Sub
End If
End If
Next
'если dOpb равно 0 - ни одна OptionButton не выбрана
If dOpb = 0 Then
MsgBox "Необходимо выбрать вариант"
Exit Sub
End If