Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1412to1416
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Unverständliches Verhalten größer kleiner als

Unverständliches Verhalten größer kleiner als
11.03.2015 10:59:10
Torsten
Hallöchen,
ich programmiere ja jetzt schon ein paar Tage, sowas unverständliches ist mir aber noch nicht untergekommen.
Ich Vergleiche ein paar Werte

Dim Istwert As Double
Dim UntererGrenzwert As Double
Dim ObererGrenzwert As Double
Prüf As Boolean
Istwert = 43,65
UntererGrenzwert = 43,65
ObererGrenzwert = 43,75
Prüf = False
If Istwert  ObererGrenzwert Then Prüf = True
Else
'anderer Code
End If

Als Ergebnis gibt mir der Code für Prüf = True aus.
Wo liegt mein Denkfehler?
" Gruß
Torsten

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unverständliches Verhalten größer kleiner als
11.03.2015 11:17:11
Rudi
Hallo,
das kann gar nicht funktionieren, da das Dezimaltrennzeichen in VBA ein . ist.
Sub aa()
Dim Istwert As Double
Dim UntererGrenzwert As Double
Dim ObererGrenzwert As Double
Dim Prüf As Boolean
Istwert = 43.65
UntererGrenzwert = 43.65
ObererGrenzwert = 43.75
Prüf = False
If Istwert  ObererGrenzwert Then
Prüf = True
Else
'anderer Code
End If
MsgBox Prüf
End Sub

Gruß
Rudi

AW: Unverständliches Verhalten größer kleiner als
11.03.2015 11:30:20
Torsten
Hallo Rudi,
ja. In der Form wie ich es auf geschrieben habe kann es natürlich nicht funktionieren. Richtig!
Aber...
...der ganze Weg zum besseren Verständnis.
Ich lese Verschiedene Werte aus unterschiedlichen Excel Tabellen ein.
    'Datei 1 öfnnen
Dim Vergleichswerte As Range ' Werte aus dem Prüfplan
Set Vergleichswerte = Worksheets(Makro).Range("A1", "D46")
'Datei 2 öffnen
Dim Originalwerte As Range ' Werte zum Prüfen
Set Originalwerte = Range(Cells(1, 1), Cells(97, 6))
Dim i As Long
Dim Prüf As Boolean
Prüf = False
Dim ObererGrenzwert As Double
Dim UntererGrenzwert As Double
Dim Istwert As Double
For i = 1 To 45
If Not (Vergleichswerte(1 + i, 4) = 0 And Vergleichswerte(1 + i, 3) = 0) Then
ObererGrenzwert = Vergleichswerte(1 + i, 2) + Vergleichswerte(1 + i, 4)
UntererGrenzwert = Vergleichswerte(1 + i, 2) - Vergleichswerte(1 + i, 3)
Istwert = Originalwerte((i * 2) + 6, 4)
If Istwert  ObererGrenzwert Then Prüf = True
End If
If Vergleichswerte(1 + i, 4) = 0 And Vergleichswerte(1 + i, 3) = 0 Then
Istwert = Originalwerte((i * 2) + 6, 4)
End If
Aber um das Befüllen der Variablen soll es gar nicht gehen. Nur grundlegend um das Vergleichen.
Wenn das ">" und "

Anzeige
AW: Unverständliches Verhalten größer kleiner als
11.03.2015 11:43:35
EtoPHG
Hallo Thorsten,
Und warum rückst du nicht gleich mit deinem Originalcode raus, sondern postest irgendwas Unverständliches?
Tatsache ist, Gleitkommazahlen in Excel werden nach IEEE-Norm 754 intern mit 15 signifikanten Stellen dargestellt/abgespeichert/verarbeitet. D.h., dass beim Rechnen/Vergleichen etc. immer Abweichungen entstehen können, was unter anderem im Artikel "Floating-point arithmetic may give inaccurate results in Excel" ausführlich erklärt wird.
Gruess Hansueli

Anzeige
...und eine Kommaumwandlung ist unnötig (owT)
11.03.2015 11:45:15
EtoPHG

AW: ...und eine Kommaumwandlung ist unnötig (owT)
11.03.2015 11:57:32
Torsten
Ahhh, klar.
Die Logik habe ich nur auf das Excel bezogen, aber nicht auf die Arbeit mit dem VBA.
Danke dir für die Links. Werde ich mir mal zu Gemüte führen.
Den vollen Code habe ich nicht aufgeschrieben, da es mir nicht nötig erschien. Und ich nicht alles komplizierter machen wollte als nötig.
Naja, und ich habe das Problem eher in meinem Kopf gesehen und nicht im Code. :-D
Danke für die Hilfe.
Das Thema ist gelöst.
Torsten

unkomplierbarer Code
11.03.2015 11:17:57
EtoPHG
Hallo Thorsten,
Dein Codeschnipsel enthält syntaktische Fehler, die es nicht erlauben, dass der Code ausgeführt werden kann. Darum ist es mir unverständlich, wie du zu deiner Behauptung kommst.
VBA versteht nur englisch (american) und dort werden Zahlen mit einem Punkt als DecimalSeparator getrennt und nicht mit einem Komma!
Gruess Hansueli

Anzeige
kompliziert: kompletieren zu kompilieren ;-)
11.03.2015 11:20:51
EtoPHG

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige