Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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ß
Antwortento top
#2
Hi,

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

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 Benutzer sagt Danke an SteBen für diesen Beitrag:
  • diving_excel
Antwortento 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 Benutzer sagt Danke an MisterBurns für diesen Beitrag:
  • diving_excel
Antwortento 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!
Antwortento 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ß
Antwortento 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
Antwortento top
#7
Ja du hast recht, die Erfahrung musste ich auch machen :D Glücklicherweise passt das bei mir.
Gruß
Antwortento top


Gehe zu:


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