Inhalt aud Textboxen löschen
#1
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
Gruß Klaus

es Grüßt der niederRhein! :17:

Office 2010
Top
#2
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
Top
#3
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.
Gruß Atilla
Top
#4
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
Gruß Atilla
Top
#5
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
Gruß Klaus

es Grüßt der niederRhein! :17:

Office 2010
Top
#6
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.
Gruß Atilla
Top
#7
(29.01.2015, 12:59)atilla schrieb: Hallo Max,

fehlt da nicht die For Each Schleife:

...

Hallo Atilla,

natürlich Blush.

Danke für die Ergänzung und sorry Klaus.

Gruß
Max
Top
#8
(29.01.2015, 13: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
Top
#9
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!
Gruß Klaus

es Grüßt der niederRhein! :17:

Office 2010
Top


Gehe zu:


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