Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

IsNumeric

    Betrifft: IsNumeric von: Franz W.
    Geschrieben am: 05.10.2003 17:23:11

    Hallo Fachleute,

    ich möchte per VBA prüfen ob in den Zellen der Spalte "C" eine dreistellige Zahl drinsteht, um alle gefundenen in einem anderen Blatt aufzulisten. Ich bin mit meinen Versuchen bisher gescheitert, weiß leider nicht mal genau wie ich IsNumeric einsetzen soll (bin ich damit überhaupt richtig?). Und darum bitte ich EUch um Eure Hilfe.

    Vielen Dank schon mal im Voraus

    Grüße
    Franz

      


    Betrifft: bin schon weiter... von: Franz W.
    Geschrieben am: 05.10.2003 17:31:24

    bin mal wieder über einen dummen Fehler gestolpert, den hab ich jetzt und folgendes läuft:

    Sub Test()
    Dim NrZel As Range, Bereich As Range
    Set Bereich = Range(Cells(9, 3), Cells(121, 3))
        For Each NrZel In KdBereich
            If IsNumeric(NrZel) And Not NrZel = "" Then
                MsgBox NrZel.Address
            End If
        Next
    End Sub
    


    WAS MIR ABER JETZT NOCH FEHLT - und da komme ich nicht weiter - ist, dass NUR DREISTELLIGE Zahlen gelesen werden sollen. Vielleicht könnt Ihr mir dabei noch helfen, bitte?

    Grüße
    Franz


      


    Betrifft: AW: bin schon weiter... von: RainerW
    Geschrieben am: 05.10.2003 17:42:59

    Hallo Franz,

    If IsNumeric(NrZel) And Not NrZel = "" And Len(NrZel) = 3 Then

    Gruß
    Rainer


      


    Betrifft: AW: bin schon weiter... von: Franz W.
    Geschrieben am: 05.10.2003 17:50:03

    Hallo Rainer,

    vielen Dank für Deine Hilfe, an sowas hab ich ja noch gar nicht gedacht. Aber jetzt gibts ein Problem: Deine Lösung klappt, wenn tatsächlich 3-stellige Zahlen in der ZElle stehen - und hier hab ich glaub ich mein Problem vorher nicht gut genug beschrieben, sorry.

    Es stehen nämlich auch 1- oder 2-stellige Zahlen in den Zellen, und die Zellen sind als 3-stellig formatiert für die Anzeige. Deshalb habe ich es so versucht:

    If Format(IsNumeric(NrZel), "000") And Not NrZel = "" Then

    Aber da reagiert er gar nicht drauf. Gibt es dafür auch noch eine Idee?

    Danke schon mal und Grüße
    Franz


      


    Betrifft: AW: bin schon weiter... von: RainerW
    Geschrieben am: 05.10.2003 17:58:38

    Hallo Rainer,
    wenn ich dich richtig verstehe, soll der Code für max 3 stellig sein
    also auch für 1 oder 2 Ziffern.

    dann:
    If IsNumeric(NrZel) And Not NrZel = "" And Len(NrZel) <= 3 Then

    Gruß
    Rainer


      


    Betrifft: AW: bin schon weiter... von: Franz W.
    Geschrieben am: 05.10.2003 18:34:16

    Hallo Rainer,

    super! Genau so ist es richtig. Vielen Dank!

    Falls Du noch magst: gibt es eine Erklärung dafür, warum meine Format...-Variante nicht greift?

    Danke und Grüße
    Franz


      


    Betrifft: AW: bin schon weiter... von: PeterW
    Geschrieben am: 05.10.2003 18:06:48

    Hallo Franz,

    meinst du mit dreistellige Zahlen alle zwischen 100 und 999 (also >=100 UND <= 999)?

    Gruß
    Peter


      


    Betrifft: AW: bin schon weiter... von: Franz W.
    Geschrieben am: 05.10.2003 18:35:13

    Hallo Peter,

    es geht um alles von 1 - 999.

    Vielen Dank und Grüße
    Franz


      


    Betrifft: AW: bin schon weiter... von: PeterW
    Geschrieben am: 05.10.2003 18:39:03

    Hallo Franz,

    hat sich zwar erledigt aber warum machst du das dann nicht direkt über den Wert?

    If IsNumeric(NrZel) And Not NrZel = "" And NrZel <= 999 Then

    Gruß
    Peter


      


    Betrifft: AW: bin schon weiter... von: Franz W.
    Geschrieben am: 05.10.2003 18:43:21

    Hallo Peter,

    freut mich trotzdem noch eine Alternative kennengelernt zu haben (hab mir schon gedacht/vielleicht ein klein bisschen erwartet, von Dir noch was Neues zu kriegen...). Und Du hast wie immer mal wieder recht: warum nicht die einfachste. Vielen Dank dafür.

    Grüße
    Franz