I am completely new to VBA so I am sorry if this seems like a silly question. I'm trying to have the TextBox next to the "Other date:" set so that you can only write in it if the "other date" button is selected.
so far this is what I have which obviously is not working :)
Private Sub otherDateTextBox_Change()
If Me.todayButton.Value = True Then
Me.otherDateTextBox.Locked = True
ElseIf Me.tomorrowButton.Value = True Then
Me.otherDateTextBox.Locked = True
ElseIf Me.otherDateButton.Value = True Then
Me.otherDateTextBox.Locked = False
End If
End Sub
Any help would be appreciated
CodePudding user response:
You are using the wrong event since the state of otherDateTextBox
is determined by the value of otherDateButton
so you should use the Change
event of otherDateButton
.
You can use the Enabled
property to "lock" the text box so that it is not selectable and not editable (will show as grey out)
Private Sub otherDateButton_Change()
otherDateTextBox.Enabled = otherDateButton.Value
End Sub
CodePudding user response:
Use the below code to disable the TextBox when the form is loaded/activated
Private Sub UserForm_Activate()
TextBox1.Enabled = False
End Sub
So it will be disabled by default. After that add the below code to enable the TextBox when Option1 is True or False.
Private Sub OptionButton1_Change()
If OptionButton1.Value = True Then
TextBox1.Enabled = True
Else
TextBox1.Enabled = False
End If
End Sub
Also you can clear out the text in TextBox before disabling it by
Private Sub OptionButton1_Change()
If OptionButton1.Value = True Then
TextBox1.Enabled = True
Else
TextBox1.Text = ""
TextBox1.Enabled = False
End If
End Sub