Ergebnis 1 bis 3 von 3
  1. #1
    Registriert seit
    16.07.2018
    Beiträge
    41

    Excel, Wenn Bedingung wird nicht richtig ausgeführt

    Hallo

    Da habe ich eine ComboBox in die ich einen Wert aus einem Bereich eintrage (10, 9.75 ... 8.25).

    Anschliessend folgen ein paar Wenn Entscheidungen:

    ResultatB.Value = "" ' löschen
    If ((ComboBox2Note.Value <= "10.0") And (ComboBox2Note.Value >= "9.5")) Then
    ResultatB.Value = "+"
    End If
    If ((ComboBox2Note.Value <= "9.0") And (ComboBox2Note.Value >= "8.75")) Then
    ResultatB.Value = "-"
    End If
    If ((ComboBox2Note.Value <= "8.5") And (ComboBox2Note.Value >= "8.25")) Then
    ResultatB.Value = "o"
    End If

    Nun wird der erste Fall, wenn der Wert 10, 9.75 oder 9.5 ist nicht erkannt. Der Entscheid ist immer "false", der Wert "+" wird nicht zugeordnet.
    Die andern Werte funktionieren, so auch 9.25, der keinen Wert zuordnet.
    Ist es ein Problem der Typisierung?
    Die Zellen in denen die ComboBox-Auswahl steht sind als Zahl mit zwei Kommastellen formatiert.
    Danke für jeden Hinweis.

    Gruss
    Fritz

  2. #2
    Registriert seit
    04.08.2015
    Ort
    in der Geburtsstadt der Gebrüder Grimm
    Beiträge
    226
    Hallo Fritz,

    ich vermute stark, dass das damit zusammenhängt, das der Wert von Comboboxen immer ein Text ist. Wenn du Texte mit < oder > vergleichst, bezieht sich das auf den ASCII Wert der Zeichen im Text. Wenn du also "10.0" mit "9.75" (als Text) vergleichst, dann wird zunächst das erste Zeichen veglichen, hier also "1" und "9". Die "9" ist ASCII-mäßig größer als die "1", auch wenn zahlenmäßig 9.75 kleiner ist als 10.
    Versuche mal Folgenedes: Wandele die Texte aus den Comboboxen vor dem Vergleich in echte Zahlen um. Das geht mit der Val-Funktion. Die Zahlen müssen dann auch nicht mehr als Text (in Anführungszeichen) geschrieben werden, sondern als echte Zahlen:
    Code:
    If ((Val(ComboBox2Note.Value) <= 10) And (Val(ComboBox2Note.Value) >= 9.5)) Then
    ResultatB.Value = "+"
    End If
    If ((Val(ComboBox2Note.Value) <= 9.0) And (Val(ComboBox2Note.Value) >= 8.75)) Then
    ResultatB.Value = "-"
    End If
    If ((Val(ComboBox2Note.Value) <= 8.5) And (Val(ComboBox2Note.Value) >= 8.25)) Then
    ResultatB.Value = "o"
    End If
    Eventuell hilft das.

    Grüße, Andreas

  3. #3
    Registriert seit
    16.07.2018
    Beiträge
    41

    das wars

    Danke. Das ist die Lösung

    Gruss Fritz

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •