Ich habe eine komplizierte UserForm mit sehr viel TextBoxen, ComboBoxen, CheckBoxen usw.
Wie kann ich per VBA den Inhalt aller Steuerelementen auf einem Schlag löschen?
Gruß
Martin
Wie kann ich per VBA den Inhalt aller Steuerelementen auf einem Schlag löschen?
imho gar nicht.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
Private Sub CMD_Leeren_Click()
Dim ObCb As Object
For Each ObCb In Me.Controls
If TypeName(ObCb) = "TextBox" Then
ObCb.Value = ""
ElseIf TypeName(ObCb) = "CheckBox" Then
ObCb.Value = False
ElseIf TypeName(ObCb) = "OptionButton" Then
ObCb.Value = False
ElseIf TypeName(ObCb) = "ComboBox" Then
ObCb.Clear
End If
Next ObCb
End Sub
Private Sub ResetUserform()
Unload UserForm1
UserForm1.Show
End Sub
GreetZ Renee
ElseIf TypeName(ObCb) = "ComboBox" Then
ObCb.value=""
Private Sub CommandButton1_Click()
Dim ObCb As Object
For Each ObCb In Me.Controls
If TypeName(ObCb) = "TextBox" Then
ObCb.Value = ""
ElseIf TypeName(ObCb) = "CheckBox" Then
ObCb.Value = False
ElseIf TypeName(ObCb) = "OptionButton" Then
ObCb.Value = False
ElseIf TypeName(ObCb) = "ComboBox" And _
ObCb.Name "ComboBox1" Then
ObCb.Value = ""
End If
Next ObCb
End Sub
Bemerkung am Rande: Funktioniert aber nur, wenn die Comboboxen keine .RowSource Eigenschaft gesetzt haben. Im letzteren Fall versagt das Setzten der .Value Eigenschaft auf "" komplett.
GreetZ Renee
Bemerkung am Rande: Funktioniert aber nur, wenn die Comboboxen keine .RowSource Eigenschaft gesetzt haben. Im letzteren Fall versagt das Setzten der .Value Eigenschaft auf "" komplett.
? unter XP geht das.
Ist das nicht übersichtlicher als die vielen ElseIf?
Private Sub CommandButton1_Click()
Dim ObCb As Object
For Each ObCb In Me.Controls
Select Case TypeName(ObCb)
Case "TextBox": ObCb.Value = ""
Case "CheckBox", "OptionButton": ObCb.Value = False
Case "ComboBox": If ObCb.Name "ComboBox1" Then ObCb.ListIndex = -1
End Select
Next ObCb
End Sub
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe