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

Forumthread: Prüfung ob Inhalt 1-3 stellig und Zahl in VBA

Prüfung ob Inhalt 1-3 stellig und Zahl in VBA
22.11.2005 11:04:45
Daniel
Hallo zusammen,
weiß jemand wie man in VBA prüfen kann, ob es sich bei dem Inhalt der aktuellen Zelle um eine 1-3 stellige Zahl handelt? Also das mit der Zahl ist mir noch klar:
Inhalt = ActiveCell.Value
If IsNumeric(Inhalt) = True Then ...
Aber wie lässt sich prüfen ob dieser Inhalt 1-3 stellig ist? Danke für eure Hilfe im voraus!!
Gruß
Daniel
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfung ob Inhalt 1-3 stellig und Zahl in VBA
22.11.2005 11:05:49
Hajo_Zi
Hallo Daniel
len(Inhalt)


AW: Prüfung ob Inhalt 1-3 stellig und Zahl in VBA
22.11.2005 11:13:41
MichaV
Hallo HaJo,
zählt 123.45 noch als dreistellige Zahl?
Gruss- Micha
AW: Prüfung ob Inhalt 1-3 stellig und Zahl in VBA
22.11.2005 11:17:39
Hajo_Zi
Hallo Micha,
die Antwort kann auch nur so gut sein wie die Frage. Was 3 stellig ist wurde nicht beschrieben.
Gruß Hajo
Anzeige
AW: Prüfung ob Inhalt 1-3 stellig und Zahl in VBA
22.11.2005 11:28:25
MichaV
Hallo Hajo,
ich weiß es auch nicht. Vielleicht wirklich eine Definitionsfrage.
Naja, auf jeden Fall müsste Deine Lösung das Trennzeichen berücksichtigen, denn das ist ja definitiv keine "Stelle". Also sowas wie
len(replace(s,".",""))
Gruss- Micha
AW: Prüfung ob Inhalt 1-3 stellig und Zahl in VBA
22.11.2005 11:32:34
Daniel
Hallo Hajo und Micha,
danke für eure Antworten. Meine Frage war wohl wirklich etwas missverständlich formuliert. Die Bedingung ist/war dass die Variable eine 1-3 stellige ZAHL ist. Habe es nun so gelöst und es scheint zu klappen ...
If IsNumeric(Inhalt) = True And Len(Inhalt) (kleinergleich) 3 Then
Nochmals DANKE!!!
Gruß
Daniel
Anzeige
AW: Prüfung ob Inhalt 1-3 stellig und Zahl in VBA
22.11.2005 11:35:51
MichaV
Hallo,
danke für Deine Rückmeldung. Es reicht übrigens wenn Du schreibst
If IsNumeric(Inhalt) And ...
Warum 123.45 oder 123,45 oder 3,4 keine ZAHLen sein sollen, bleibt mir unklar, aber hauptsache es funzt ;o)
Gruss- Micha
AW: Prüfung ob Inhalt 1-3 stellig und Zahl in VBA
22.11.2005 11:42:11
Daniel
Hi Micha,
danke für den Tip!
Mit deinem Einwand dass 123.45 oder 123,45 eigentlich genau so Zahlen sind hast du natürlich vollkommen recht, aber für meine Verwendung ist das nicht relevant.
Gruß
Daniel
Anzeige
AW: Prüfung ob Inhalt 1-3 stellig und Zahl in VBA
22.11.2005 11:07:24
MichaV
Hallo,
teile die Zahl durch 1000. Wenn das Ergebnis kleiner als 1 ist, ist die Zahl kleiner als 1000, also 3-stellig.
Gruss- Micha
PS: Rückmeldung wäre nett.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Prüfung von 1-3 stelligen Zahlen in VBA


Schritt-für-Schritt-Anleitung

Um in VBA zu prüfen, ob der Inhalt einer Zelle eine 1-3 stellige Zahl ist, kannst du den folgenden Code verwenden:

Sub PrüfenObZahl()
    Dim Inhalt As Variant
    Inhalt = ActiveCell.Value

    If IsNumeric(Inhalt) And Len(Inhalt) <= 3 Then
        MsgBox "Der Inhalt ist eine 1-3 stellige Zahl."
    Else
        MsgBox "Der Inhalt ist keine 1-3 stellige Zahl."
    End If
End Sub

Dieser Code prüft, ob der Inhalt der aktuellen Zelle eine Zahl ist und ob die Länge des Inhalts 3 oder weniger beträgt. Damit kannst du einfach in Excel prüfen, ob eine Zahl den Anforderungen entspricht.


Häufige Fehler und Lösungen

  1. Fehler: Der Code funktioniert nicht bei Dezimalzahlen.

    • Lösung: Wenn du auch Dezimalzahlen (wie 123.45) als gültige Zahlen zulassen möchtest, musst du den Code anpassen. Verwende Replace, um Punkte oder Kommas zu entfernen, bevor du die Länge prüfst:
      If IsNumeric(Inhalt) And Len(Replace(Inhalt, ".", "")) <= 3 Then
  2. Fehler: Eingabe von mehr als 3 Ziffern wird akzeptiert.

    • Lösung: Stelle sicher, dass die Bedingung Len(Inhalt) <= 3 korrekt gesetzt ist. Ein häufiger Fehler ist das Vergessen von <=.

Alternative Methoden

Eine alternative Methode zur Prüfung, ob der Inhalt eine 1-3 stellige Zahl ist, besteht darin, den Wert durch 1000 zu teilen. Wenn das Ergebnis kleiner als 1 ist, handelt es sich um eine 3-stellige Zahl:

If IsNumeric(Inhalt) And (Inhalt / 1000 < 1) Then
    MsgBox "Der Inhalt ist eine 1-3 stellige Zahl."
End If

Diese Methode kann nützlich sein, wenn du die Grenzen für die Zahl 1-3 auch flexibel gestalten möchtest.


Praktische Beispiele

Hier sind einige Beispiele, wie du die Prüfung auf 1-3 stellige Zahlen in verschiedenen Szenarien anwenden kannst:

  • Beispiel 1: Prüfen eines einzelnen Wertes in einer Zelle.
  • Beispiel 2: Überprüfen einer Liste von Werten in einer Spalte und Einfärben der Zellen, die die Kriterien erfüllen.
Sub PrüfenUndEinfärben()
    Dim Zelle As Range
    For Each Zelle In Selection
        If IsNumeric(Zelle.Value) And Len(Zelle.Value) <= 3 Then
            Zelle.Interior.Color = RGB(0, 255, 0) ' Grün für gültige Zahlen
        Else
            Zelle.Interior.Color = RGB(255, 0, 0) ' Rot für ungültige Zahlen
        End If
    Next Zelle
End Sub

Tipps für Profis

  • Nutze die Debug.Print-Anweisung, um Zwischenergebnisse während der Entwicklung deines Codes anzuzeigen.
  • Halte deine Variablen klar benannt, um späteres Debugging zu erleichtern.
  • Teste deinen Code mit unterschiedlichen Datentypen, um sicherzustellen, dass die Prüfung robust ist.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur ganze Zahlen akzeptiert werden? Um sicherzustellen, dass nur ganze Zahlen akzeptiert werden, kannst du die Int-Funktion verwenden:

If IsNumeric(Inhalt) And Int(Inhalt) = Inhalt And Len(Inhalt) <= 3 Then

2. Was passiert, wenn die Zelle leer ist? Eine leere Zelle wird als False für IsNumeric ausgewertet, sodass dein Code in diesem Fall die Nachricht "Der Inhalt ist keine 1-3 stellige Zahl." anzeigen wird.

3. Kann ich diese Prüfung für mehrere Zellen gleichzeitig anwenden? Ja, du kannst eine Schleife verwenden, um mehrere Zellen in einem Bereich zu überprüfen, wie im Beispiel oben gezeigt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige