Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

TextBox in Schleife ansprechen?

Forumthread: TextBox in Schleife ansprechen?

TextBox in Schleife ansprechen?
15.07.2005 07:29:20
andere@onlinehome.de
Hallo,
ist es möglich, Textfelder in einer Schleife anzusprechen.
Bsp.: Habe TextBox1 bis TextBox8
So funktionierts nicht!
For a = 1 To 8
If TextBox & a = "" Then TextBox & a = "0"
Next a
Habt Ihr eine Lösung für mich?
MfG
Tino Seibt
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: TextBox in Schleife ansprechen?
15.07.2005 07:31:06
Hajo_Zi
Hallo Tino
If Controls("Textbox" & a)= "" then .....
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem Windows 2000 SP4 und Excel Version 2000 SP3.


Anzeige
AW: TextBox in Schleife ansprechen?
15.07.2005 07:57:50
andere@onlinehome.de
Hallo Hajo_Zi,
danke für die schnelle Hilfe!
Gruss
Tino
;
Anzeige
Anzeige

Infobox / Tutorial

TextBox in Schleife ansprechen


Schritt-für-Schritt-Anleitung

Um Textfelder in einer Schleife anzusprechen, kannst Du die Controls-Sammlung verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Dein Excel-Dokument und aktiviere den Visual Basic for Applications (VBA) Editor (Alt + F11).

  2. Füge ein UserForm hinzu und platziere mehrere TextBoxen (z.B. TextBox1 bis TextBox8) auf dem Formular.

  3. Füge den folgenden Code in das UserForm ein:

    Sub SetTextBoxes()
       Dim a As Integer
       For a = 1 To 8
           If Controls("TextBox" & a).Value = "" Then
               Controls("TextBox" & a).Value = "0"
           End If
       Next a
    End Sub
  4. Führe den Code aus, um die TextBoxen in der Schleife anzusprechen. Wenn eine TextBox leer ist, wird sie auf "0" gesetzt.


Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden"

    • Lösung: Überprüfe den Namen der TextBoxen. Stelle sicher, dass sie korrekt benannt sind (TextBox1, TextBox2, ...).
  • Fehler: Schleife läuft nicht wie erwartet

    • Lösung: Stelle sicher, dass Du den Code innerhalb des richtigen Moduls (UserForm) ausführst.

Alternative Methoden

Anstelle der Controls-Sammlung kannst Du auch ein Array verwenden, um die TextBoxen zu verwalten. Hier ist ein Beispiel:

Sub SetTextBoxesAlternative()
    Dim TextBoxes(1 To 8) As MSForms.TextBox
    Dim a As Integer

    ' Zuweisung der TextBoxen
    For a = 1 To 8
        Set TextBoxes(a) = Me.Controls("TextBox" & a)
    Next a

    ' Überprüfen und Setzen der Werte
    For a = 1 To 8
        If TextBoxes(a).Value = "" Then
            TextBoxes(a).Value = "0"
        End If
    Next a
End Sub

Diese Methode kann die Lesbarkeit des Codes erhöhen.


Praktische Beispiele

Hier ist ein praktisches Beispiel, das Du verwenden kannst:

  1. Erstelle ein neues UserForm mit 8 TextBoxen.
  2. Füge einen Button hinzu, um die oben genannten Subs auszuführen.
  3. Verknüpfe den Button mit dem Code, um die TextBoxen zu setzen.

Wenn Du das Formular nun öffnest und den Button drückst, werden alle leeren TextBoxen automatisch auf "0" gesetzt.


Tipps für Profis

  • Verwende die With-Anweisung: Dies kann den Code kürzer und lesbarer machen.

    With Controls("TextBox" & a)
       If .Value = "" Then .Value = "0"
    End With
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um unerwartete Probleme abzufangen.


FAQ: Häufige Fragen

1. Kann ich die TextBoxen dynamisch erstellen?
Ja, Du kannst TextBoxen zur Laufzeit erstellen und sie in einer Schleife ansprechen.

2. Welche Excel-Version benötige ich?
Der vorgestellte Code funktioniert ab Excel 2000, wenn Du mit VBA arbeitest.

3. Wo finde ich weitere Hilfe zu Excel und VBA?
Du kannst hilfreiche Informationen auf Seiten wie onlinehome.de oder in Excel-Foren finden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige