06.04.2018, 12:21
Hallo zusammen,
ich Arbeite derzeit mich einem Datensatz in Excel, der durch eine Datenbankabfrage (nicht von mir) erzeugt wurde. In einem VBA-Code haben ich dann per If abgefragt, ob ein Wert z.B. gleich 0,7 ist. Das klappt in fast allen fällen, jedoch laufen einige ins else, obwohl sie (optisch) gleich 0,7 sind. Überschreibt man diesen Wert händisch mit 0,7 klappt alles einwandfrei. Demnach ist also der Wert aus der Datenabfrage ungleich 0,7. Gehe ich jedoch nicht den weg über if im vba sonder über eine Wenn-Funktion in der Standardoberfläche, so ist die Gleichheitsbedingung erfüllt.
Ich vermute dass der Wert beispielsweise 0,700000000000001 oder ähnliches beträgt , kann dies jedoch nicht nachweisen. Nun stehe ich vor dem Problem, dass ich gerne alle 0,7er mit der If-Abfrage einfangen will und nie sicher bin ob auch wirklich alle erwischt wurden.
Hat jemand bereits ein ähnliches Problem festgestellt oder weiß womöglich weiter?
Ich habe den folgenden Code für den richtigen und falschen 0,7er getestet und stelle den unterschied damit fest.
Ich habe das Dokument
Fehlerdiagnose.xls (Größe: 27,5 KB / Downloads: 3) mit beiden Werten angehängt und diesen Code sowie die Wenn-Funktionen verwendet.
Liebe grüße!
ich Arbeite derzeit mich einem Datensatz in Excel, der durch eine Datenbankabfrage (nicht von mir) erzeugt wurde. In einem VBA-Code haben ich dann per If abgefragt, ob ein Wert z.B. gleich 0,7 ist. Das klappt in fast allen fällen, jedoch laufen einige ins else, obwohl sie (optisch) gleich 0,7 sind. Überschreibt man diesen Wert händisch mit 0,7 klappt alles einwandfrei. Demnach ist also der Wert aus der Datenabfrage ungleich 0,7. Gehe ich jedoch nicht den weg über if im vba sonder über eine Wenn-Funktion in der Standardoberfläche, so ist die Gleichheitsbedingung erfüllt.
Ich vermute dass der Wert beispielsweise 0,700000000000001 oder ähnliches beträgt , kann dies jedoch nicht nachweisen. Nun stehe ich vor dem Problem, dass ich gerne alle 0,7er mit der If-Abfrage einfangen will und nie sicher bin ob auch wirklich alle erwischt wurden.
Hat jemand bereits ein ähnliches Problem festgestellt oder weiß womöglich weiter?
Ich habe den folgenden Code für den richtigen und falschen 0,7er getestet und stelle den unterschied damit fest.
Code:
Sub Fehlererzeugen()
If Cells(4, 2) = 0.7 Then
Cells(4, 4) = "Ja"
ElseIf Cells(4, 2) < 0.7 Then
Cells(4, 4) = "kleiner als 0,7"
ElseIf Cells(4, 2) > 0.7 Then
Cells(4, 4) = "größer als 0,7"
Else
Cells(4, 4) = "wedernoch"
End If
If Cells(5, 2) = 0.7 Then
Cells(5, 4) = "Ja"
ElseIf Cells(5, 2) < 0.7 Then
Cells(5, 4) = "kleiner als 0,7"
ElseIf Cells(5, 2) > 0.7 Then
Cells(5, 4) = "größer als 0,7"
Else
Cells(5, 4) = "wedernoch"
End If
End Sub
Fehlerdiagnose.xls (Größe: 27,5 KB / Downloads: 3) mit beiden Werten angehängt und diesen Code sowie die Wenn-Funktionen verwendet.
Liebe grüße!