Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Textboxen leeren, ausser zwei

Forumthread: Textboxen leeren, ausser zwei

Textboxen leeren, ausser zwei
11.07.2013 18:07:29
Bernd
Hallo zusammen,
mit nachfolgendem Code leeren ich in einer UF meine TextBoxen.
Private Sub cmdNeue_Berechnung_Click()
Dim objControl As Control
    For Each objControl In Controls
       Select Case TypeName(objControl)
          Case "TextBox"
             objControl.Text = ""
          Case "ComboBox"
             objControl.ListIndex = -1
          Case "CheckBox"
             objControl.Value = False
          Case "OptionButton"
             objControl.Value = False
       End Select
    Next
End Sub
Wie muss ich den Code ändern, damit Textbox1 und TextBox2 nicht geleert werden?
Vielen Dank schon mal im Voraus!!!
Gruß
Bernd

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textboxen leeren, ausser zwei
11.07.2013 18:29:13
Stefan
Hallo Bernd,
versuchs mal so
Private Sub cmdNeue_Berechnung_Click()
Dim objControl As Control
For Each objControl In Controls
Select Case TypeName(objControl)
Case "TextBox"
If Not objControl.Name = "Textbox1" And Not objControl.Name = "Textbox2" Then
objControl.Text = ""
End If
Case "ComboBox"
objControl.ListIndex = -1
Case "CheckBox"
objControl.Value = False
Case "OptionButton"
objControl.Value = False
End Select
Next
End Sub
Gruß Stefan

Anzeige
AW: Textboxen leeren, ausser zwei
11.07.2013 19:11:23
Bernd
Hallo Stefan,
Danke für deine Hilfe!!!
Aber es werden immer noch alle TextBoxen geleert, wat nu?
Gruß
Bernd

AW: Textboxen leeren, ausser zwei
11.07.2013 20:25:37
Rudi
Hallo,
Private Sub cmdNeue_Berechnung_Click()
Dim objControl As Control
For Each objControl In Controls
Select Case TypeName(objControl)
Case "TextBox"
Select Case LCase(objControl.Name)
Case "textbox1", "textbox2"
Case Else: objControl.Text = ""
End Select
Case "ComboBox"
objControl.ListIndex = -1
Case "CheckBox"
objControl.Value = False
Case "OptionButton"
objControl.Value = False
End Select
Next
End Sub

Gruß
Rudi

Anzeige
AW: Textboxen leeren, ausser zwei
12.07.2013 11:20:43
Bernd
Hallo Rudi,
entschuldige, dass ich mich erst jetzt melde.
Dein Code funktioniert einwandfrei. Habe ihn bereits eingebaut und meine andere Errungenschaft ad acta gelegt.
Danke nochmals für deine Hilfe
Gruß
Bernd

einfache Lösung gefunden
11.07.2013 20:19:40
Bernd
Hallo zusammen,
hab ganz eine Lösung gefunden...
   Dim i As Integer
   For i = 3 To 13
      Controls("Textbox" & i).Value = ""
   Next i
Gruß
Bernd

Anzeige
AW: einfache Lösung gefunden
11.07.2013 20:56:54
Stefan
Hallo Bernd,
Textbox1 ist ungleich TextBox1 :-(
Private Sub cmdNeue_Berechnung_Click()
Dim objControl As Control
For Each objControl In Controls
Select Case TypeName(objControl)
Case "TextBox"
If Not objControl.Name = "TextBox1" And Not objControl.Name = "TextBox2" Then
objControl.Text = ""
End If
Case "ComboBox"
objControl.ListIndex = -1
Case "CheckBox"
objControl.Value = False
Case "OptionButton"
objControl.Value = False
End Select
Next
End Sub
Gruß Stefan
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Textboxen leeren, außer zwei


Schritt-für-Schritt-Anleitung

Um in Excel VBA Textboxen zu leeren, während zwei bestimmte Textboxen unberührt bleiben, kannst Du folgenden Code verwenden:

  1. Öffne den VBA-Editor (Alt + F11).
  2. Füge den folgenden Code in das entsprechende UserForm-Modul ein:
Private Sub cmdNeue_Berechnung_Click()
    Dim objControl As Control
    For Each objControl In Controls
        Select Case TypeName(objControl)
            Case "TextBox"
                If Not objControl.Name = "TextBox1" And Not objControl.Name = "TextBox2" Then
                    objControl.Text = ""
                End If
            Case "ComboBox"
                objControl.ListIndex = -1
            Case "CheckBox"
                objControl.Value = False
            Case "OptionButton"
                objControl.Value = False
        End Select
    Next
End Sub
  1. Stelle sicher, dass die Namen der Textboxen korrekt sind (z.B. "TextBox1" und "TextBox2"), da VBA zwischen Groß- und Kleinschreibung unterscheidet.

Häufige Fehler und Lösungen

  • Fehler: Alle Textboxen werden geleert, einschließlich der gewünschten.

    • Lösung: Überprüfe die Schreibweise der Textbox-Namen in Deinem Code. VBA ist empfindlich gegenüber Groß- und Kleinschreibung.
  • Fehler: Es wird eine Fehlermeldung angezeigt.

    • Lösung: Stelle sicher, dass alle verwendeten Steuerelemente (Textboxen, ComboBoxen etc.) im UserForm vorhanden sind und korrekt benannt wurden.

Alternative Methoden

Eine andere Möglichkeit, die Textboxen zu leeren, besteht darin, eine Schleife über die Indizes der Textboxen zu verwenden:

Dim i As Integer
For i = 3 To 13
    If Controls("TextBox" & i).Name <> "TextBox1" And Controls("TextBox" & i).Name <> "TextBox2" Then
        Controls("TextBox" & i).Value = ""
    End If
Next i

Diese Methode ist nützlich, wenn Du eine Reihe von Textboxen hast, die durch ihre Indizes identifiziert werden können.


Praktische Beispiele

Hier sind einige Szenarien, in denen Du diese VBA-Technik anwenden könntest:

  • Formular zur Dateneingabe: Wenn Du ein Formular hast, das mehrere Eingabefelder enthält und nur bestimmte Felder nach einer Berechnung zurückgesetzt werden sollen.
  • Benutzerdefinierte Eingaben: In einer Anwendung, in der Benutzer Eingaben tätigen, die nach der Verarbeitung zurückgesetzt werden müssen, jedoch bestimmte Informationen beibehalten werden sollen.

Tipps für Profis

  • Achte immer darauf, die Namen der Steuerelemente im VBA-Code genau so zu verwenden, wie sie im UserForm definiert sind.
  • Nutze die LCase-Funktion, um die Namen der Textboxen in Kleinbuchstaben umzuformen, um mögliche Probleme mit der Groß- und Kleinschreibung zu vermeiden.
  • Experimentiere mit verschiedenen Ereignissen (z.B. OnChange), um den Code an verschiedene Benutzerinteraktionen anzupassen.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass eine Textbox nicht geleert wird? Du kannst eine Bedingung im Select Case-Block hinzufügen, die prüft, ob der Name der Textbox mit dem gewünschten Namen übereinstimmt.

2. Funktioniert dieser Code in allen Excel-Versionen? Ja, der Code sollte in allen modernen Excel-Versionen (2010 und höher) funktionieren, solange VBA unterstützt wird.

3. Was tun, wenn ich mehr als zwei Textboxen ausschließen möchte? Du kannst die Bedingung im Code erweitern, indem Du weitere Namen hinzufügst oder eine Select Case-Anweisung verwendest, um mehrere Fälle zu berücksichtigen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige