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

Forumthread: Textboxen per Schleife ansprechen

Textboxen per Schleife ansprechen
17.02.2016 17:41:00
Volker
Hallo nochmal,
das nächste lies nicht lange auf sich warten.
Ich versuche Userform-Textboxen mit einer Schleife zu formatieren.
Aber Excel möchte das nicht. Kann mir jemand sagen wo der Fehler liegt?
For i = 1 To 10
Me.Controls("TextBox" & i) = Format(CDbl(Me.Controls("TextBox" & i)), "00")
Next
Danke und Gruß
Volker

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Danke, Fehler gefunden
17.02.2016 18:05:21
Volker
Hab es!

AW: Textboxen per Schleife ansprechen
17.02.2016 18:16:23
fcs
Hallo Volker,
du musst unbedingt prüfen, ob der Inhalt der Textbox nummerisch bevor du mit CDbl versuchst den Textbox-Inhalt in eine Zahl uzuwandeln.
Außerdem musst du darauf achten, dass bei der Eingabe ggf. das gleiche Dezimal- und 1000er-trennzeichen wie in der Systemeinstellung verwendet wird.
Gruß
Franz
Etwa so:
'getestet unter Excel 2010
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To 10
With Me.Controls("TextBox" & i)
If .Value = "" Then
.Value = "00" 'Wert bei leerer Textbox festlegen
ElseIf IsNumeric(.Value) Then
.Value = Format(CDbl(.Value), "00")
Else
'do nothing - Textbox enthält keine Zahl
End If
End With
Next
End Sub

Anzeige
AW: Textboxen per Schleife ansprechen
17.02.2016 19:18:32
Volker
Hallo Franz,
genau das war das Problem!
Danke für die Antwort!
Gruß
Volker
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Textboxen in Excel Userform per Schleife ansprechen


Schritt-für-Schritt-Anleitung

Um Textboxen in einer Excel Userform per Schleife anzusprechen und zu formatieren, folge diesen Schritten:

  1. Öffne die Excel Userform: Gehe in den VBA-Editor (Alt + F11) und öffne deine Userform.
  2. Füge einen CommandButton hinzu: Ziehe einen Button auf die Userform, um einen Click-Event zu erstellen.
  3. Füge den folgenden VBA-Code ein: Dieser Code wird beim Klicken auf den Button ausgeführt.
Private Sub CommandButton1_Click()
    Dim i As Integer
    For i = 1 To 10
        With Me.Controls("TextBox" & i)
            If .Value = "" Then
                .Value = "00" 'Wert bei leerer Textbox festlegen
            ElseIf IsNumeric(.Value) Then
                .Value = Format(CDbl(.Value), "00")
            Else
                'do nothing - Textbox enthält keine Zahl
            End If
        End With
    Next
End Sub
  1. Teste die Userform: Starte die Userform und klicke auf den Button, um die Formatierung der Textboxen zu testen.

Häufige Fehler und Lösungen

  • Fehler: Textbox ist leer: Wenn eine Textbox leer ist, wird der Code nicht korrekt ausgeführt. Stelle sicher, dass du einen Standardwert festlegst (z. B. "00").

  • Fehler: Ungültiger Wert: Wenn der Inhalt der Textbox nicht numerisch ist, wird der Code nicht weiter ausgeführt. Verwende die IsNumeric() Funktion, um dies zu überprüfen.

  • Fehler: Dezimal- und 1000er-Trennzeichen: Achte darauf, dass die Trennzeichen in der Eingabe mit den Systemeinstellungen übereinstimmen.


Alternative Methoden

Eine alternative Methode, um Textboxen zu formatieren, besteht darin, die Werte direkt in einer Array-Variable zu speichern und anschließend zu verarbeiten. Das könnte wie folgt aussehen:

Private Sub CommandButton1_Click()
    Dim i As Integer
    Dim values(1 To 10) As Variant

    For i = 1 To 10
        values(i) = Me.Controls("TextBox" & i).Value
    Next i

    For i = 1 To 10
        If values(i) = "" Then
            values(i) = "00"
        ElseIf IsNumeric(values(i)) Then
            values(i) = Format(CDbl(values(i)), "00")
        End If
        Me.Controls("TextBox" & i).Value = values(i)
    Next i
End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung der Textboxen in einer Userform:

  1. Benutzerdefinierte Eingaben: Lass die Benutzer Werte eingeben, die dann automatisch in ein spezifisches Format umgewandelt werden.
  2. Fehlerüberprüfung: Verwende die Schleife, um sicherzustellen, dass alle Wert eingaben korrekt sind, bevor du mit weiteren Berechnungen fortfährst.

Tipps für Profis

  • Debugging: Nutze die Debugging-Funktion im VBA-Editor, um den Code Schritt für Schritt durchzugehen und Fehler zu identifizieren.
  • Modularität: Teile deinen Code in mehrere Sub-Prozeduren auf, um die Lesbarkeit und Wartbarkeit zu verbessern.
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlungsroutine, um unvorhergesehene Eingaben elegant abzufangen.

FAQ: Häufige Fragen

1. Wie viele Textboxen kann ich in einer Userform haben?
Es gibt keine feste Obergrenze, jedoch kann die Benutzeroberfläche überladen wirken, wenn zu viele Elemente hinzugefügt werden.

2. Funktioniert dieser Code in Excel 2016?
Ja, der Code ist mit Excel 2010 und höheren Versionen kompatibel.

3. Was mache ich, wenn ich mehr als 10 Textboxen habe?
Ändere einfach die Schleifenparameter entsprechend, z. B. For i = 1 To 20, um mehr Textboxen 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