Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Problem bei If Anweisung
#1
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.
Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2016 Pro  32bit - Win 10 Pro 64 bit
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
Antworten Top
#2
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
Antworten Top
#3
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?
Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2016 Pro  32bit - Win 10 Pro 64 bit
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
Antworten Top
#4
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
Antworten Top
#5
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?
Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2016 Pro  32bit - Win 10 Pro 64 bit
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
Antworten Top
#6
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
Antworten Top
#7
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?
Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2016 Pro  32bit - Win 10 Pro 64 bit
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
Antworten Top
#8
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"?
Antworten Top
#9
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.
Antworten Top
#10
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:
Grüße aus Bremen
Bernie

"Wenn du jemanden triffst ohne lächeln, schenke ihm deins !!!"

MS Office 2016 Pro  32bit - Win 10 Pro 64 bit
Haftungshinweis: Trotz sorgfältiger inhaltlicher Kontrolle übernehmen ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste