Registriert seit: 14.04.2014
Version(en): Office 2016 32bit
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.
Registriert seit: 10.04.2014
Version(en): Office 2007, 2016, Win 10 64 bit
29.09.2014, 12:39
(Dieser Beitrag wurde zuletzt bearbeitet: 29.09.2014, 12:41 von Zwergel.)
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
Mit freundlichen Grüßen :)
Michael
Registriert seit: 14.04.2014
Version(en): Office 2016 32bit
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?
Registriert seit: 11.04.2014
Version(en): Office 2007
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
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 14.04.2014
Version(en): Office 2016 32bit
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?
Registriert seit: 11.04.2014
Version(en): Office 2007
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"
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 14.04.2014
Version(en): Office 2016 32bit
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?
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi Stefan,
(29.09.2014, 14: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"?
Registriert seit: 11.04.2014
Version(en): Office 2003 - Office 2007 - Office 365
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
Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Registriert seit: 14.04.2014
Version(en): Office 2016 32bit
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: