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

Wenn grösser als X und kleiner als Y dann... (VBA)

Forumthread: Wenn grösser als X und kleiner als Y dann... (VBA)

Wenn grösser als X und kleiner als Y dann... (VBA)
10.02.2005 23:54:57
Giuseppe
Hallo "Nie-schlafengehn-Excel-VBA-Freunde"
Ich habe ein kleines VBA Problem:
Ich mööchte eine Zahl, die grösser X und kleiner Y ist,
ermitteln.
If POS > X (UND) POS Da diese Makrolein "falsch" ist, erhoffe ich mir
eine Lösung.
Kann mir jemand helfen?
mfG
Giuseppe
Anzeige
Was heisst denn "und" auf Englisch?
Boris
Wo wir wieder beim Thema wären...
Grüße Boris
AND ! und ?
11.02.2005 00:06:36
Giuseppe
Hallo Boris
Ich kann doch bei (und) nicht einfach ein (and)
platzieren...
Natürlich ist irgendwo ein "and" .... aber wo?
Das "Makrolein" ist nur ein Beispiel.
mfG
Giuseppe
Hast du es denn mal probiert? oT
Boris
Grüße Boris
Anzeige
AW: Hast du es denn mal probiert? oT
11.02.2005 00:22:15
Giuseppe
Hallo Boris
Sorry, ich habe meine VBA Kenntnisse unterschätzt.
Ich dachte, ich schreibe mal ein kleines Beispiel.
VBA schreibt sich wohl so einfach wie ein Brief.
Nun ist alles klar, danke und Entschuldigung.
mfG
Giuseppe
AW: Wenn grösser als X und kleiner als Y dann... (VBA)
PeterW
Hallo Giuseppe,
statt (UND) einfach AND - aber vielleicht beschreibst du besser mal, was du genau planst, GoTo ist mit Sicherheit der falsche Weg!
Gruß
Peter
Anzeige
AW: Wenn grösser als X und kleiner als Y dann... (VBA)
K.Rola
Hallo,
"...GoTo ist mit Sicherheit der falsche Weg!"
Ist vielleicht(oder besser mit Sicherheit) nicht der schulmäßige Weg, aber falsch
ist er deshalb nicht.
Gruß K.Rola
AW: Wenn grösser als X und kleiner als Y dann... (VBA)
PeterW
Hallo K.Rola,
ich formuliere um:
das Problem lässt sich sicher ohne unnötige und den Code-Durchblick erschwerende GoTos lösen.
Besser? ;-)
Gruß
Peter
Anzeige
AW: Wenn grösser als X und kleiner als Y dann... (VBA)
K.Rola
Hallo,
ja, besser. War mir schon klar, dass du das weißt, nur ob Frager das auch weiß?
Gruß K.Rola
AW: Wenn grösser als X und kleiner als Y dann... (VBA)
11.02.2005 00:28:57
Giuseppe
Hallo Leute
Vielen Dank für das Interesse
Das mit dem "and" hat sich (Boris) erledigt.
goto ist doch eine tolle Sache?!

Sub test()
Dim X As Long, Y As Long, pos As Long
X = 5
Y = 10
pos = InputBox("Bitte geben sie eine Zahl ein")
If pos > X And pos < Y Then GoTo step01
MsgBox ("ausserhalb Bereich")
GoTo step99
step01:
MsgBox ("ja")
step99:
End Sub

... Ich bin leider, leider noch Anfänger
... Doch dass was ich weiss (VBA), habe ich aus diesem Forum
... Deshalb: Herzlichen Dank
mfG
Giuseppe
Anzeige
AW: Wenn grösser als X und kleiner als Y dann... (VBA)
K.Rola
Hallo,
wenn du vorhast, dich näher mit Programmierung zu beschäftigen, dann vergiss das Goto
besser, auch wenn es zunächst mal toll zu sein scheint.
Gruß K.Rola
Meine Freizet besteht nur aus "goto"
11.02.2005 00:37:22
Giuseppe
Hallo K.Rola
Ich werde es mir merken.
Doch alle meine Excel bzw. VBA Projekte bestehen grösstenteils
aus "goto".
Ich verbringe einen grossteil meiner Freizeit, mit Excel bzw. "goto" schreiben
mfG
Giuseppe
Anzeige
AW: Meine Freizet besteht nur aus "goto"
K.Rola
Hallo,
bin mir nicht sicher, ob das ironisch gemeint ist. Wie auch immer, falsch ist es nicht
und wenn du damit klarkommst, dann viel Spaß.
Gruß K.Rola
AW: Meine Freizet besteht nur aus "goto"
11.02.2005 08:46:59
Giuseppe
Hallo K.Rola
Nein, das war nicht ironisch gemeint!
Doch ich werde in der Zukunft achten, keine oder wenige "goto"
zu benutzen.
Ich habe ja jetzt alternativen, die besser und kürzer sind.
mfG
Giuseppe
Anzeige
AW: Wenn grösser als X und kleiner als Y dann... (VBA)
PeterW
Hallo Giuseppe,
alternativ ohne GoTo:

Sub test()
Dim X As Long, Y As Long, pos As Long
X = 5
Y = 10
pos = InputBox("Bitte geben sie eine Zahl ein")
If pos > X And pos < Y Then
MsgBox "ja"
Else
MsgBox ("ausserhalb Bereich")
End If
End Sub

Gruß
Peter
Anzeige
AW: Wenn grösser als X und kleiner als Y dann... (VBA)
11.02.2005 00:40:32
Giuseppe
Hallo Peter
Und wenn das Makro so aussieht:
If POS > A And POS If POS > C And POS If POS > E And POS .
.
einige
mfG
Giuseppe
AW: Wenn grösser als X und kleiner als Y dann... (VBA)
PeterW
Hallo Giuseppe,
beispielsweise so:
If (pos > A And pos C And pos E And pos Gruß
Peter
AW: Wenn grösser als X und kleiner als Y dann... (VBA)
11.02.2005 08:43:19
Giuseppe
Hallo PeterW
Vielen Dank
Ich denke ich habe es nun verstanden.
mfG
Giuseppe
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Werte zwischen X und Y in Excel VBA ermitteln


Schritt-für-Schritt-Anleitung

Um in Excel VBA zu überprüfen, ob ein Wert größer als X und kleiner als Y ist, kannst Du die folgende Struktur verwenden. Hier ist ein einfaches Beispiel:

Sub test()
    Dim X As Long, Y As Long, pos As Long
    X = 5
    Y = 10
    pos = InputBox("Bitte geben Sie eine Zahl ein")

    If pos > X And pos < Y Then
        MsgBox "Der Wert liegt im Bereich."
    Else
        MsgBox "Außerhalb des Bereichs."
    End If
End Sub

In diesem Beispiel wird eine Zahl abgefragt, und es wird geprüft, ob sie größer als 5 und kleiner als 10 ist. Die Verwendung von And ist hier entscheidend, um beide Bedingungen zu verknüpfen.


Häufige Fehler und Lösungen

  1. Falsche Verwendung von And
    Stelle sicher, dass Du das Wort And in der Bedingung verwendest. Eine häufige Fehlerquelle ist die Verwendung von & statt And.

  2. Syntaxfehler
    Überprüfe, dass alle Klammern und Anführungszeichen korrekt gesetzt sind. Ein häufiger Fehler ist das Fehlen eines Then nach der Bedingung.

  3. Datentypen
    Achte darauf, dass die Variablen den richtigen Datentyp haben. Beispielsweise sollte pos als Long deklariert werden, wenn Du mit ganzen Zahlen arbeitest.


Alternative Methoden

Wenn Du die Prüfung auf Werte zwischen zwei Grenzen einfacher gestalten möchtest, kannst Du auch die Select Case-Anweisung verwenden:

Sub test()
    Dim pos As Long
    pos = InputBox("Bitte geben Sie eine Zahl ein")

    Select Case pos
        Case Is > 5, Is < 10
            MsgBox "Der Wert liegt im Bereich."
        Case Else
            MsgBox "Außerhalb des Bereichs."
    End Select
End Sub

Diese Methode bietet eine klare Struktur und kann bei mehreren Bedingungen nützlich sein.


Praktische Beispiele

Neben der direkten Vergleichsprüfung kannst Du auch komplexere Bedingungen einbauen. Zum Beispiel, um zu prüfen, ob ein Wert größer als A und kleiner als B ist:

Sub test()
    Dim A As Long, B As Long, pos As Long
    A = 3
    B = 8
    pos = InputBox("Bitte geben Sie eine Zahl ein")

    If pos > A And pos < B Then
        MsgBox "Der Wert liegt zwischen A und B."
    Else
        MsgBox "Der Wert liegt nicht im Bereich."
    End If
End Sub

Tipps für Profis

  • Vermeide GoTo: Es ist besser, klare und strukturierte Code-Logik zu verwenden, anstatt zu GoTo, um die Lesbarkeit zu erhöhen.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um unerwartete Eingaben abzufangen.

  • Verwende Konstanten: Definiere Konstante Werte für X und Y, um Deinen Code flexibler und leichter wartbar zu machen.

Const X As Long = 5
Const Y As Long = 10

FAQ: Häufige Fragen

1. Wie kann ich die Prüfung auf mehrere Werte erweitern?
Du kannst zusätzliche Bedingungen mit And oder Or einfügen, um mehrere Werte zu vergleichen.

2. Was ist der Unterschied zwischen > und >=?
> prüft, ob der Wert größer als X ist, während >= prüft, ob der Wert größer oder gleich X ist.

3. Wie kann ich die Eingabe validieren?
Du kannst die Eingabe mit einer Schleife überprüfen, um sicherzustellen, dass nur gültige Zahlen eingegeben werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige