Clever-Excel-Forum

Normale Version: Problem bei If Anweisung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

hab ein Problem mit if-Anweisung und komme nicht weiter. Hier mein Code:
Code:
Private Sub TextBox10_Afterupdate()
    TextBox10.Value = Format(TextBox10.Value, "0.00")
    With frm_Depot
    If .TextBox13.Value <= -.TextBox10.Value Then TextBox14.Value "verkaufen"
    If .TextBox13.Value >= .TextBox10.Value Then TextBox14.Value "SL erhöhen"
    If .TextBox13.Value <> .TextBox10.Value Then TextBox14.Value "halten"
    End With
End Sub

Ziel soll sein, wenn wert in Textbox13 kleiner als wert in TextBox10 Minus dann trage in TextBox14 "verkaufen" ein. Bei Wert im Plus TB14 = "SL erhöhen" und wenn dazwischen TB14 ="halten".
Beispiel:
TB10 = 10
TB13 = MinusTB10 (-10) dann TB14 "verkaufen"
TB13 = PlusTB10 (+10) dann TB14 "SL erhöhen"
TB13 = zwischen beiden ersten Werten dann TB14 "halten"

Ich hoffe, ich konnte mich einigermaßen verständlich ausdrücken und bedanke mich für eure Hilfe schon mal im Voraus.
Hi Bernie,

die Bedingungen sind m.E. ja nicht eindeutig, da bei Gleichehit TB10 und TB13 laut deinen Bedingungen ja beides zutrifft. Du muß entscheiden, was bei Gleichheit passieren soll.

>= und <= geht nicht

Ich würde es mal so probieren

Code:
With frm_Depot
    If .TextBox13.Value < .TextBox10.Value Then TextBox14.Value "verkaufen"
    If .TextBox13.Value > .TextBox10.Value Then TextBox14.Value "SL erhöhen"
    Else
    TextBox14.Value "halten"
    End If
    End With
Hallo Michael,

Danke für deine Hilfe.

Leider erhalte ich eine Fehlermeldung "unzulässige Verwendung einer Eigenschaft" und zwar erste if-Zeile am Ende letztes "Value".

Wo kann der Fehler liegen?
Hallo,

eine Textbox enthält wie der Name schon sagt, Text. Du mußt diese noch in Zahlen umwandeln. Mal den Code von Michael erwweitert.

Code:
With frm_Depot
     If CDbl(.TextBox13.Value) < CDbl(.TextBox10.Value) Then TextBox14.Value "verkaufen"
     If CDbl(.TextBox13.Value) > CDbl(.TextBox10.Value) Then
        TextBox14.Value "SL erhöhen"
     Else
        TextBox14.Value "halten"
     End If
End With
Hallo Stefan,

schön von dir zu hören. Habe deinen Vorschlag angewendet bekomme aber leider Fehlermeldung "Else ohne If".

Hab zwischenzeitlich ein wenig gebastelt und hier mein Code:
Code:
If CDbl(.TextBox13.Value) < -TextBox10 Then TextBox14.Text = "verkaufen"
    If CDbl(.TextBox13.Value) > TextBox10 Then TextBox14.Text = "SL erhöhen"
    If CDbl(.TextBox13.Value) < -TextBox10 and >= CDbl(.TextBox13.Value) > TextBox10 Then Textbox14.Text = "halten"

Zeile 1 und 2 funktionieren, wenn aber der Wert zwischen den beiden ersten liegt, komme ich nicht weiter.

Fällt dir dazu etwas ein?
Hallo,

irgendwie verstehe ich deine dritte Zeile nicht, wie da die Bedingungen sein sollen (nur mal als Text)
Code:
If CDbl(.TextBox13.Value) < CDbl(TextBox10) * -1 Then Textbox14.Text = "verkaufen"
     If CDbl(.TextBox13.Value) > CDbl(TextBox10) Then Textbox14.Text = "SL erhöhen"
     If CDbl(.TextBox13.Value) > CDbl(TextBox10) * -1 And CDbl(.TextBox13.Value) < TextBox10 Then Textbox14.Text = "halten"
Hallo Stefan,

dein Vorschlag hat funktioniert. Danke!!!!!

Zitat:irgendwie verstehe ich deine dritte Zeile nicht

Angenommen der Wert in TB13 ist zwischen "-10" und "+10", dann soll in TB14 "halten" stehen. Die Werte +/- 10 können variabel sein, da sie aus der Eingabe der Textbox10 bestehen.

An der Börse nennt man das "Trailing Stop Loss" = Verluste minimieren und Gewinne maximieren.

Konnte ich dir das Ganze etwas näher bringen?
Hi Stefan,

(29.09.2014, 13:26)Steffl schrieb: [ -> ]
Code:
With frm_Depot
     If CDbl(.TextBox13.Value) < CDbl(.TextBox10.Value) Then TextBox14.Value "verkaufen"
     If CDbl(.TextBox13.Value) > CDbl(.TextBox10.Value) Then
        TextBox14.Value "SL erhöhen"
     Else
        TextBox14.Value "halten"
     End If
End With

fehlt da nicht noch ein "End If" vor dem zweiten "If" oder vor dem "End With"?
Hallo Ralf,

warum sollte da ein End If fehlen?

Zitat:If CDbl(.TextBox13.Value) < CDbl(.TextBox10.Value) Then TextBox14.Value "verkaufen"

ist doch eine komplette Wenn Dann Abfrage. Und bei

Zitat: If CDbl(.TextBox13.Value) > CDbl(.TextBox10.Value) Then
TextBox14.Value "SL erhöhen"
Else
TextBox14.Value "halten"
End If

ist das End If vorhanden, oder?

Gruß
Marcus
Hallo Ihr Beiden,

ihr diskutiert über den falschen Code. Die Codezeile von Stefan, die mir geholfen hat, ist diese ...
Code:
If CDbl(.TextBox13.Value) > CDbl(TextBox10) * -1 And CDbl(.TextBox13.Value) < TextBox10 Then Textbox14.Text = "halten"

Wollte das nur höflich anmerken :50:
Seiten: 1 2