Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1472to1476
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

Wertepaare ermitteln

Wertepaare ermitteln
09.02.2016 08:55:40
Jens
Hallo,
kann mir jemand bei der Erweiterung des Makro helfen?
Wie vergleiche ich positive und negative Werte untereinander? (Über Betrag?)
Die roten Eintragungen zeigen, den Sachverhalt der noch nicht berücksichtigt ist.
https://www.herber.de/bbs/user/103383.xlsm

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

Betreff
Datum
Anwender
Anzeige
AW: Wertepaare ermitteln
09.02.2016 14:58:33
Michael
Hallo Jens,
versuch's mal damit:
Sub Wertepaare()
On Error GoTo Fehler
Dim TB1, TB2, i%, z%, Wmax&, Gmax%
Application.ScreenUpdating = False
'*** Stammdaten Anfang
Set TB1 = Sheets("Tabelle1")
Set TB2 = Sheets("Tabelle2")
z = 2
' Gmax = -999999
With TB2
.Cells.ClearContents
.Cells(1, 1) = "Wert": .Cells(1, 2) = "Ergebnis"
For i = TB1.Range("B3") To TB1.Range("B4")
TB1.Cells(1, 2) = i
.Cells(z, 1) = i
.Cells(z, 2) = TB1.Cells(2, 2)
If i = TB1.Range("B3") Then Gmax = Abs(.Cells(z, 2)): Wmax = TB1.Cells(1, 2)
If Abs(TB1.Cells(2, 2)) > Gmax Then
Gmax = TB1.Cells(2, 2)
Wmax = TB1.Cells(1, 2)
End If
z = z + 1
Next
TB1.Cells(1, 2) = Wmax
End With
Application.ScreenUpdating = False
'*** Fehlerbehandlung
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
Application.ScreenUpdating = False
End Sub
Schöne Grüße,
Michael

Anzeige
AW: Wertepaare ermitteln
09.02.2016 15:42:14
Jens
Hallo,
danke für den Code.
Ich verstehe aber nicht wo der Fall berücksichtigt ist, wenn die Ergebnisse der Gleichungen ermittelt werden und ohne berücksichtigung der Vorzeichen verglichen werden und es gleiche Ergebnisse gibt, dass nur immer der kleinste Ausgangswert zurückgegeben werden soll?
Wo ist das hier berücksichtigt bzw. wie?

AW: Wertepaare ermitteln
09.02.2016 19:29:11
Michael
Hallo Jens,
das ist im Prinzip die Zeile
If i = TB1.Range("B3") Then Gmax = Abs(.Cells(z, 2)): Wmax = TB1.Cells(1, 2)

(beim allerersten Schleifendurchlauf werden Gmax und Wmax gesetzt)
im Zusammenspiel mit dieser Zeile:
If Abs(TB1.Cells(2, 2)) > Gmax Then
NUR wenn ein größeres Gmax auftaucht, wird auch Wmax geändert, bei Gleichheit eben nicht - so bleibt das kleinere, zuerst gefundene erhalten.
Schöne Grüße,
Michael

Anzeige
AW: Wertepaare ermitteln
10.02.2016 15:33:33
Jens
Hallo,
besten Dank dür die Erklärung.
Habe ich verstanden, aber irgendwie mag eine Datei nicht ganz so.
https://www.herber.de/bbs/user/103437.xlsm
Im Sheet 2-Punkt Auflagerung (Zeile 51 und 59) und 3-Punkt Auflagerung (Zeile 53 und 62) passen die Maximalwerte nicht. (Betrifft immer das Makro Durchbiegung). Ich habe die eigentlichen Maximalwerte rechts daneben in der jeweiligen Zeile geschrieben.
Ich habe insgesamt in den betreffenden Zellen des Sheets mit Abs() gearbeitet. Die Werte werden dann in die jeweilige Tabelle übetragen verglichen mit dem bisherigen Höchstwert und danach werden die vorzeichenehafteten Werte in die Zellen der Tabelle geschrieben, damit das Diagramm richtig erstellt werden kann.
Ich weis auch nicht warum, die Höchstwerte nicht richtig ermittelt werden, wenn man auf den Button aktualisieren drückt.
Hast du eine Idee warum?
Gruß

Anzeige
AW: Wertepaare ermitteln
11.02.2016 13:25:43
Michael
Hallo Jens,
das liegt an der Variablendelaration (mein Fehler bei der Kurzschreibweise: ich hatte % statt # erwischt, d.h. der Wert wurde als integer statt als double verglichen); setze in beide Subs bitte ein...
Dim TB1 As Worksheet, TB2 As Worksheet, i&, z&, Wmax&, Gmax#

... dann kommen die gewünschten Ergebnisse raus.
Schöne Grüße,
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige