Hallo Forum,
ich habe mir eine Userform mit mehreren Textboxen erstellt,
jetzt möchte ich wenn ich neue Daten eingenen möchte das die Inhalte der Textboxen gelöscht wird!
die Textboxen habe ich zur besseren bearbeitung umbenannt. z.B txtDatum, txtName, txtEingang usw.
Gibt es eine elegantere Lösung als: txtDatum = "" ?
Gruß Klaus
Hallo Klaus,
hier eine kleine Prozedur mit der Du diverse Steuerelemente zurücksetzen kannst, wenn Du Dir die Prozedur
auf einen CommandButton legst:
Code:
Sub SteuerelementeZurücksetzen_Click()
Dim Steuerelement As Control
Application.ScreenUpdating = False
Select Case TypeName(Steuerelement)
Case "TextBox": Steuerelement = ""
Case "CheckBox": Steuerelement = False
Case "ComboBox": Steuerelement = ""
Case "ListBox": Steuerelement =""
Case "OptionButton": Steuerelement = False
End Select
Application.ScreenUpdating = True
End Sub
Gruß
Max
Hallo Klaus,
wenn alle Textboxen geleert werden sollen, kannst Du sie so in einer chleife leeren:
Code:
Private Sub CommandButton1_Click()
Dim oControl As Control
For Each oControl In Me.Controls
If Left(oControl.Name, 3) = "Txt" Then
oControl = ""
End If
Next
End Sub
Dabei wird davon ausgegangen, dass die Bezeichnungen immer mit "Txt" beginnen.
Wenn Du einzelne ausschließen möchtest, muss dann noch eine weitere If Abfrage rein genommen werden.
Hallo Max,
fehlt da nicht die For Each Schleife:
Code:
Private Sub CommandButton1_Click()
Dim Steuerelement As Control
For Each Steuerelement In Me.Controls
Select Case TypeName(Steuerelement)
Case "TextBox": Steuerelement = ""
Case "CheckBox": Steuerelement = False
Case "ComboBox": Steuerelement = ""
Case "ListBox": Steuerelement = ""
Case "OptionButton": Steuerelement = False
End Select
Next
End Sub
Hallo Max,
bei deinem Beispiel, gibt er eine Fehlermeldung an das die Variable nich deklariert ist!
ich habe Variable zwar deklariert, warscheinlich aber falsch!
Dim Steuerelement As Object
Hallo Atilla,
bin Beispiel funktioniert, muß aber immer zweimal das Makro starten,
da immer eine Textbox erst beim zweiten mal geleert wird.
Gruß Klaus
Hallo Klaus,
das kann ich nicht nachvollziehen.
Dann müsste bei dir noch irgendwo Code sein, der das Löschen beim ersten mal verhindert.
Ich hatte in Max Version etwas ergänzt, hast du es mit meiner Ergänzung mal getestet.
(29.01.2015, 11:59)atilla schrieb: [ -> ]Hallo Max,
fehlt da nicht die For Each Schleife:
...
Hallo Atilla,
natürlich
.
Danke für die Ergänzung und sorry Klaus.
Gruß
Max
(29.01.2015, 12:59)Nukleus schrieb: [ -> ]Hallo Max,
bei deinem Beispiel, gibt er eine Fehlermeldung an das die Variable nich deklariert ist!
ich habe Variable zwar deklariert, warscheinlich aber falsch!
Dim Steuerelement As Object
...
Gruß Klaus
Hallo Klaus,
wahrscheinlich ist das beim Kopieren verloren gegangen.
Oben im Code steht es drin.
Gruß
Max
Guten morgen ihr beiden,
ich möchte mich bei euch , Max und Atilla bedanken!!! :43:
es lag wohl am Blattschutz, das nicht sofort alle Textboxen zurück gesetzt worden sind,
jetzt funktionieren beide Makros!
Vielen Dank!