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

Forumthread: Leere Textbox als"Null" interpretieren

Leere Textbox als"Null" interpretieren
14.09.2013 23:43:58
Dieter
Hallo Forum,
bin beim Konvertieren von Textboxinhalten hängen geblieben. Beim Auslesen von Textboxen (1-13) funktioniert das Konvertieren richtig, wenn alle Textboxen mit Werten (Zahlen) belegt sind. Tritt der Fall ein, dass eine Textbox ohne Inhalt ("") ist, springt der Debugger an. Die Textboxen werden nach der Verarbeitung geleert ("") und erneut mit Werten gefüllt.
Meine Frage: Kann die leere Textbox als "Null" interpretiert werden, da alle Werte der Textboxen numerisch weiter verarbeitet werden (Diagramme)?

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leere Textbox als"Null" interpretieren
15.09.2013 06:26:53
ass
Hallo Dieter
= Val(TextBox1.Text)
siehe auch CDbl
Gruß Rudi

AW: Leere Textbox als"Null" interpretieren
15.09.2013 08:21:44
Dieter
Hallo Rudi,
danke für die schnelle Antwort. So funktioniert es genau richtig. Mit CDbl hat die Konvertierung der leeren Textbox nur bei eingetragenen Werten geklappt. Ich hätte bei dem Thema Konvertierung wahrscheinlich bis zum Ende lesen müssen. Vielen Dank.
Gruß Dieter

Anzeige
AW: Leere Textbox als"Null" interpretieren
15.09.2013 10:57:15
fcs
Hallo Dieter,
alternativ kannst du den Vorgabewert dieser Textboxen auf 0 setzen.
oder per If-Prüfung die Textboxen auf "" oder nummerisch prüfen und dann den Rückgabewert auf 0 setzen.
With Cells(Zeile,Spalte)
If IsNumeric(Me.Textbox1) Then
.Value = CDbl(Me.Textbox1)
ElseIf Me.Textbox1 = ""
.Value = 0
Else
MsgBox "Keine nummerische Eingabe in Textbox1"
Exit Sub
end if
End With

CDbl liefert ggf. korrektere Umwandlungsergebnisse als Val
Gruß
Franz

Anzeige
AW: Leere Textbox als"Null" interpretieren
15.09.2013 11:08:52
Dieter
Hallo Franz,
diese Variante werde ich einsetzen. Sie fängt alle möglichen Eingabe fehler ab und mein dilletantisches Produkt soll von Excel und VBA unbelasteten Usern benutzt werden.
Vielen Dank, die Abfrage verwende ich sicher nochöfter.
Gruß Dieter
;
Anzeige
Anzeige

Infobox / Tutorial

Leere Textboxen in Excel als Null behandeln


Schritt-für-Schritt-Anleitung

  1. Öffne dein Excel-Dokument und wechsle in den VBA-Editor (Alt + F11).

  2. Finde die Userform, die die Textboxen enthält, die du bearbeiten möchtest.

  3. Füge den folgenden Code in das entsprechende Ereignis (z. B. einen Button-Click) ein:

    With Cells(Zeile, Spalte)
       If IsNumeric(Me.Textbox1) Then
           .Value = CDbl(Me.Textbox1)
       ElseIf Me.Textbox1 = "" Then
           .Value = 0
       Else
           MsgBox "Keine nummerische Eingabe in Textbox1"
           Exit Sub
       End If
    End With
  4. Testen: Leere die Textbox und starte das Makro, um sicherzustellen, dass die leere Eingabe als Null interpretiert wird.


Häufige Fehler und Lösungen

  • Fehler: Debugger springt an

    • Lösung: Stelle sicher, dass du die Textboxen auf "Null" setzen kannst, indem du die oben genannte If-Prüfung verwendest.
  • Fehler: CDbl funktioniert nicht bei leeren Textboxen

    • Lösung: Verwende eine If-Abfrage, um leere Textboxen explizit auf 0 zu setzen.

Alternative Methoden

Eine alternative Methode, um Excel leere Zellen als Null zu interpretieren, ist das Setzen eines Vorgabewertes für die Textboxen:

  1. Setze den Vorgabewert der Textbox auf 0:

    • Klicke im Designmodus auf die Textbox und setze die Eigenschaft Value auf 0.
  2. Verwende die Val-Funktion:

    • Anstelle von CDbl kannst du auch Val(TextBox1.Text) verwenden, um die Eingabe zu konvertieren.

Praktische Beispiele

  • Wenn du mehrere Textboxen hast (z. B. TextBox1 bis TextBox13), kannst du die oben genannten Methoden in einer Schleife verwenden, um alle Textboxen zu überprüfen und entsprechende Werte zuzuweisen.

    Dim i As Integer
    For i = 1 To 13
       With Cells(Zeile, i)
           If IsNumeric(Me.Controls("TextBox" & i).Value) Then
               .Value = CDbl(Me.Controls("TextBox" & i).Value)
           ElseIf Me.Controls("TextBox" & i).Value = "" Then
               .Value = 0
           Else
               MsgBox "Keine nummerische Eingabe in TextBox" & i
               Exit Sub
           End If
       End With
    Next i

Tipps für Profis

  • Verwende CDbl anstelle von Val: CDbl liefert präzisere Umwandlungsergebnisse für numerische Werte.
  • Fehlerbehandlung: Implementiere eine umfassende Fehlerbehandlung, um sicherzustellen, dass deine Userform auch bei ungültigen Eingaben stabil bleibt.
  • Dokumentation: Halte deine VBA-Codes gut dokumentiert, um anderen Benutzern zu helfen, dein Produkt zu verstehen, insbesondere wenn es für Excel und VBA unerfahrene Benutzer gedacht ist.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass alle leeren Textboxen als Null behandelt werden?
Du kannst die oben beschriebenen If-Prüfungen in deinem Code verwenden, um leere Textboxen explizit auf 0 zu setzen.

2. Was ist der Unterschied zwischen Val und CDbl?
Val konvertiert einen Text in einen numerischen Wert, während CDbl sicherstellt, dass der Wert als Double interpretiert wird, was genauere Ergebnisse liefert. Verwende CDbl, um die besten Resultate zu erzielen, insbesondere bei numerischen Berechnungen.

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