TextBox leeren
#1
Hallo!
Mittels eines VBA Codes möchte ich Textboxen eines Userforms leeren. 
Code:
Private Sub CommandButton13_Click()
Dim i As Integer
Dim o As Object

 For Each o In Me.Controls
 
  If TypeName(o) = "TextBox" Then
    o.Value = ""
  End If
 
 Next o


End Sub

Das funktioniert auch soweit sehr gut, nur wie müsste ich meinen Code ändern, wenn ich nur bestimmte TextBoxen leeren möchte?

Bsp.: Text Box 1-10, Text Box 20-23 und Text Box 50-100 sollen geleert werden, die anderen nicht (in diesen Fall TB 11 -19 und TB 24 -49).

EDIT: Der Button befindet sich im selben Userform wie die TB's.

Danke für eure Hinweise!

Gruß
Antworten Top
#2
Hi,

ich hatte ein ähnliches Problem & habe es wie folgt gelöst.
Musst dann halt nur angeben, welche TextBoxen geleert werden sollen :)

Private Sub CommandButton2_Click()

'Maske leeren

TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
TextBox8.Value = ""
TextBox9.Value = ""
TextBox11.Value = ""
TextBox12.Value = ""
TextBox13.Value = ""
TextBox14.Value = ""


End Sub

Grüße
SteBen
[-] Folgende(r) 1 Nutzer sagt Danke an SteBen für diesen Beitrag:
  • diving_excel
Antworten Top
#3
Es ginge auch über eine weitere If-Bedingung

Code:
Private Sub CommandButton13_Click()
Dim i As Integer
Dim o As Object

For Each o In Me.Controls
If TypeName(o) = "TextBox" Then
If (o < 11 Or o > 19) And (o < 24 Or o > 49) Then
    o.Value = ""
  End If
End If
Next o

End Sub
Oder anders herum

Code:
Private Sub CommandButton13_Click()
Dim i As Integer
Dim o As Object

For Each o In Me.Controls
If TypeName(o) = "TextBox" Then
If Not (o >= 11 And o <= 19) Or (o >= 24 And o <= 49) Then
    o.Value = ""
 End If
End If
Next o

End Sub
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • diving_excel
Antworten Top
#4
Danke für beide Antworten, habe das auch zuerst so gemacht wie SteBen es mir geraten hat, aber bei sehr vielen Textboxen ist das nicht ganz geschickt :D deswegen ist die zweite Lösung Top!

Gruß und schönes Wochenende noch!
Antworten Top
#5
Hab noch eine alternative gefunden, falls es mal jemand braucht:
Code:
Private Sub CommandButton15_Click()
Dim o As Integer

For o = 11 To 19 'Hier den Bereich der Textboxen eintragen, welche geleert werden sollen (TB 11 - 19 zb)
Controls("Textbox" & o).Text = ""
Next o

End Sub

Gruß
Antworten Top
#6
Die Alternative ist in Wahrheit aber nur dann von Interesse, wenn man einen einzigen zusammenhängenden Bereich abdecken will. Für jeden weiteren Bereich brauchst du eine eigene Schleife.
Schöne Grüße
Berni
Antworten Top
#7
Ja du hast recht, die Erfahrung musste ich auch machen :D Glücklicherweise passt das bei mir.
Gruß
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste