Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
644to648
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
644to648
644to648
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Falsche Auswertung mit Select..Case

Falsche Auswertung mit Select..Case
01.08.2005 12:21:17
reiner
Hallo Leute,
eine private Wetterstation speichert alle 15 min diverse Werte (Temp., Feuchte, Luftdruck Wind usw.).
Diese Werte sind in einer Exceltabelle gespeichert und können in einer VBA-UserForm mit entsprechen-dem Programmcode zu weiteren Auswertungen (Min, Max und Mittelwert) herangezogen werden. Inner-halb eines frei wählbaren Zeitraumes werden die Windrichtungen zur Anzeige in 3 Textfeldern mithilfe einer Select.. Case-Auswertung in Himmelsrichtungen umgewandelt wobei es aber immer wieder falsche Zuordnungen gibt. Der Zahlenwert der Windrichtung wird mit der Variable „Windricht“ übergeben. Die Variable „Himmelsricht“ übergibt nach der Auswertung den zugeordneten Wert an die jeweiligen Textfel-der.

Function AuswertungHimmelsrichtung()
Himmelsricht = ""
Select Case Windricht
Case 0 To 22
Himmelsricht = "Nord"
Case 23 To 67
Himmelsricht = "NordOst"
Case 68 To 112
Himmelsricht = "Ost"
Case 113 To 157
Himmelsricht = "SüdOst"
Case 158 To 202
Himmelsricht = "Süd"
Case 203 To 247
Himmelsricht = "SüdWest"
Case 248 To 292
Himmelsricht = "West"
Case 293 To 337
Himmelsricht = "NordWest"
Case 338 To 360
Himmelsricht = "Nord"
End Select
End Function

Einer “Min”-Windrichtung mit “20 °” wurde korrekterweise die Himmelsrichtung „Nord“ zugeordnet.
Einer “Mittelwert” [Average]-Windrichtung mit “140 °” wurde die Himmelsrichtung „Nord“ anstatt „SüdOst“ zugeordnet. Einer “Max”-Windrichtung mit “325 °” wurde die Himmelsrichtung „NordOst“ anstatt „Nord-West“ zugeordnet.
Ich kann mir überhaupt nicht erklären warum immer wieder falsche Zuordnungen erstellt werden, kann mir jemand weiterhelfen den Fehler auf zu spüren?
Gruß Reiner

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Falsche Auswertung mit Select..Case
01.08.2005 12:26:03
Hajo_Zi
Hallo Reiner,
mich wundert es das übergaupt ein Wert übergeben wird. Die Funktion hat den Namen AuswertungHimmelsrichtung ihr wird aber kein Wert zugewiesen.
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


AW: Falsche Auswertung mit Select..Case
01.08.2005 12:41:27
Ralf
Hallo Rainer,
gehen wir einmal davon aus, dass Windricht eine globale Variable, und somit auch in der Prozedur AuswertungHimmelsrichtung bekannt ist. Dann scheint es so, als ob ihr Strings übergeben werden. Also 20°, 40° usw. Du wertest aber Integerwerte aus (20, 40 usw.)
In diesem Fall brauchst Du eine IntegerVariable, die das ° Zeichen nicht enthält.
Bsp.: (unter der Voraussetzung Windricht ist global...)
Function AuswertungHimmelsrichtung()
Dim iWind%
'-1 ohne Leerzeichen zw. Zahl und °, sonst -2
iWind = CInt(Left(Windricht, Len(Windricht) - 1))
Himmelsricht = ""
Select Case iWind
Case 0 To 22
Himmelsricht = "Nord"
Case 23 To 67
Himmelsricht = "NordOst"
...
usw...
Ciao, Ralf
Anzeige
AW: Falsche Auswertung mit Select..Case
01.08.2005 12:44:31
reiner
Hallo Hajo,
meinst Du einen Wert in Klammern hinter "Function AuswertungHimmelsrichtung()"
falls ja, wozu dient er?
Könnt dieser fehlende Wert der Grund für die falschen Zuordnungen sein?
Reiner
AW: Falsche Auswertung mit Select..Case
01.08.2005 13:14:19
Ralf
Hallo Rainer,
auch wenn ich nicht Hajo bin (ich hoffe Du bist mir nicht böse Hajo) hast Du 2 Möglichkeiten.
1.
Du definierst die Variable Global (ganz oben im Allgemeinen Teil entweder mit Private im selben Modul oder Public in anderen Modulen oder
2. In einer Prozedur und übergibst sie dann an die Funktion.
bei 1. ist sie der Funktion bekannt und Du brauchst sie nicht mit zu übergeben.
bei 2. geht das in etwa so:
Dim Aufnahmevariable, Windricht as String '(!)
Windricht = "22°"
Aufnahmevariable = WindrichtAuswerten (Windricht)
...usw...
Der Funktionskopf sieht dann so aus:
Function WindrichtAuswerten (Grad As String) As String
Dabei ist wichtig, dass der Datentyp in der Funktionsklammer genau dem entspricht, den Du übergibst. D.h., beim Aufruf Übergibst Du die Variable Windricht (sie ist eine String).
Der Parameter Grad in der Funktion muß also auch ein String sein. Die Funktion selbst muß auch einen Rückgabetyp besitzen. In diesem Fall wilsst Du ja Nord, Süd usw. ausgeben, also ebenfalls String.
Ich hoffe, das war ja jetzt nicht zu umständlich ausgedrückt...
Ciao, Ralf
Anzeige
AW: Falsche Auswertung mit Select..Case
01.08.2005 13:53:08
reiner
Hallo Ralf,
ich habe Dich nicht mit Hajo verwechselt; die Rückmeldung an Hajo habe ich erstellt weil ich seine Meldung als E-Mailbenachrichtigung vor Deiner Rückmeldung erhalten habe, das ist der Grund.
Nun aber zu Deinen beiden Rückmeldungen:
bereits die erste Meldung war gut nachvollziehbar und hat mein Problem vollständig gelöst.
Danke auch für die zweite Rückmeldung die ebenfalls gut verständlich formuliert wurde.
nochmals danke für die Tipps und einen schönen Tag noch
Reiner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige