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

"höchsten"Wendepunkt finden

"höchsten"Wendepunkt finden
02.06.2005 13:44:24
Bob
Hallo zusammen!
Für die Auswertung von Ganganalyse Kurven habe ich ein Excel Makro vorliegen, dass aus einer Ergebnistabelle bestimmte MAX/MIN spaltenweise ausliest und die jeweilige Zeilennummer übergibt.
Bei den Kurven die mehrere Wendepunkte aufweisen, funktioniert dies jedoch nicht.Es interessiert der Wendepunkt mit der größten Y-Komponente. Ausgegeben wird aber der letzte,meist kleinere Wendepunkt
hier die Funktion:
'Sucht Max, wenn es keinen Wendepunkt gibt, wird null ausgegeben

Function areaMax2(ByVal row1, row2, col As Integer)
Dim maxval1, maxval2 As Single
Dim row, maxrow As Integer
Dim maxflag As Boolean
Dim returnwert As Integer
For row = row1 To (row2 - 1)
maxval2 = Tabelle3.Cells(row, col)
maxval1 = Tabelle3.Cells(row + 1, col)
If maxval1 > maxval2 Then
maxflag = True
maxrow = row + 1
End If
Next row
If ((maxflag = True) And (maxrow <> row2) And (maxrow <> row1)) Then
returnwert = maxrow
Else
returnwert = 106     'Zeile ist leer->Ausgabe null
End If
areaMax2 = returnwert 'Rückgabe Zeilennummer
End Function

vielleicht hat ja jemand ne Idee
Danke schonmal
Bob

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: "höchsten"Wendepunkt finden
02.06.2005 16:53:28
Martin
Hallo Bob,
versuch mal

Function areaMax2(ByVal row1, row2, col As Integer)
Dim maxval0, maxval1, maxval2, maxval3 As Single
Dim rw, maxrow As Long
Dim maxflag As Boolean
Dim returnwert As Integer
For rw = row1 + 1 To row2 - 1
maxval1 = Cells(rw - 1, col)
maxval2 = Cells(rw, col)
maxval3 = Cells(rw + 1, col)
If maxval2 >= maxval1 And maxval2 > maxval3 And maxval2 > maxval0 Then
maxflag = True
maxrow = rw
maxval0 = maxval2
End If
Next rw
If ((maxflag = True) And (maxrow <> row2) And (maxrow <> row1)) Then
returnwert = maxrow
Else
returnwert = 106     'Zeile ist leer->Ausgabe null
End If
areaMax2 = returnwert 'Rückgabe Zeilennummer
End Function

Gruß
Martin Beck
Anzeige
AW: "höchsten"Wendepunkt finden
02.06.2005 16:54:25
ingoG
Hallo Bob
zwar ungetestet, sollte aber so funzen
maxflag benötigst Du mE dann auch eigentlich nicht mehr, da maxrow in diesem Fall =row1 wäre...
Gruß Ingo

Function areaMax2(ByVal row1, row2, col As Integer)
Dim maxval1, maxval2 As Single
Dim row, maxrow As Integer
Dim maxflag As Boolean
Dim returnwert As Integer
maxrow=row1
For row = row1 To (row2 - 1)
maxval2 = Tabelle3.Cells(row, col)
maxval1 = Tabelle3.Cells(row + 1, col)
If maxval1 > maxval2 Then
maxflag = True
if maxval1>Tabelle3.Cells(maxrow , col) then maxrow = row + 1
End If
Next row
If ((maxflag = True) And (maxrow <> row2) And (maxrow <> row1)) Then
returnwert = maxrow
Else
returnwert = 106     'Zeile ist leer->Ausgabe null
End If
areaMax2 = returnwert 'Rückgabe Zeilennummer
End Function

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige