TextBoxBackColor aendern wenn <>

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Bjoern.

    TextBoxBackColor aendern wenn <>

    Hallo zusammen,

    als erstes ich bin absoluter Anfaenger auf dem Gebiet der Programmierung. Das ich da ins stocken gerate ist kein Wunder.
    Ich versuche mich momentan an einem Projekt, das Daten aus Exel auslesen soll. Soweit funktioniert es auch. Bis auf :

    VB.NET-Quellcode

    1. Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged
    2. TextBox1.BackColor = Color.White
    3. End Sub
    4. Private Sub Textbox1_Load(sender As Object, e As EventArgs) Handles TextBox1.BackColorChanged
    5. If TextBox1.Text < "84%" Then
    6. TextBox1.BackColor = Color.Red
    7. ElseIf TextBox1.Text > "95%" Then
    8. TextBox1.BackColor = Color.Green
    9. Else
    10. TextBox1.BackColor = Color.Yellow
    11. End If
    12. End Sub



    100% wird mir in ROT angezeigt. Und zusaetzlich ist mir aufgefallen, dass Excel sich nicht wirklich schliesst. Im Taskmanager finde ich teilweise 30 mal die Application.
    Falls jemand eine Idee hat und mir erklaeren kann was ich tun muss waehre ich ein rgosses Stueck weiter. Wenn mehr Code benoetigt wird kann ich den gerne zur Verfuegung stellen.

    Lg Bjoern.

    *Thema verschoben und CodeTags eingefügt*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nofear23m“ ()

    Willkommen im Forum.
    Bevor Du weitermachst, bitte die empfohlenen VS-Einstellungen verwenden. Denn .Text < "85%" - was soll das sein? Ein Text wird mit einem anderen Text verglichen. Das führt dazu, dass geschaut wird, bei welchem der Texte der Anfangsbuchstaben in der ASCII-Tabelle vorher kommt. Irgendwie glaube ich nicht, dass das Sinn der Übung ist. Denn "100%": die 1 kommt in der ASCII-Tabelle eben von "8", daher springt der Color.Red-Zweig an. Bzgl. Excel: Tja, ohne Öffnungs- und Schließcode können wir schlecht helfen.
    btw: bitte CodeTags verwenden
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hallo und Danke fuers schnelle Antworten. Hier der Code zum oeffnen und schliessen.

    Code

    VB.NET-Quellcode

    1. Public Class Form1
    2. Function excel()
    3. Dim sheet1 As New Microsoft.Office.Interop.Excel.Application
    4. Dim txt1 As String
    5. Dim txt2 As String
    6. Dim txt3 As String
    7. Dim txt4 As String
    8. Dim txt5 As String
    9. Dim txt6 As String
    10. Dim txt7 As String
    11. Dim txt8 As String
    12. Dim txt9 As String
    13. Dim txt10 As String
    14. Dim txt11 As String
    15. Dim txt12 As String
    16. Dim txt13 As String
    17. Dim txt14 As String
    18. Dim txt15 As String
    19. Dim txt16 As String
    20. Dim txt17 As String
    21. Dim txt18 As String
    22. Dim txt19 As String
    23. Dim txt20 As String
    24. Dim txt21 As String
    25. Dim eff1 As Double
    26. Dim eff2 As Double
    27. Dim eff3 As Double
    28. Dim eff4 As Double
    29. Dim eff5 As Double
    30. Dim eff6 As Double
    31. Dim eff7 As Double
    32. Dim ppm1 As String
    33. Dim ppm2 As String
    34. Dim ppm3 As String
    35. Dim ppm4 As String
    36. Dim ppm5 As String
    37. Dim ppm6 As String
    38. Dim ppm7 As String
    39. Dim Status1 As String
    40. Dim Status2 As String
    41. Dim Status3 As String
    42. Dim Status4 As String
    43. Dim Status5 As String
    44. Dim Status6 As String
    45. Dim Status7 As String
    46. Try
    47. sheet1.Workbooks.Open("blblblblblb.xlsx")
    48. 'Werte auslesen aus Excel EFF/H
    49. txt1 = sheet1.Range("B3").Value()
    50. txt2 = sheet1.Range("B4").Value()
    51. txt3 = sheet1.Range("B5").Value()
    52. txt4 = sheet1.Range("B6").Value()
    53. txt5 = sheet1.Range("B7").Value()
    54. txt6 = sheet1.Range("B8").Value()
    55. txt7 = sheet1.Range("B9").Value()
    56. 'Werte auslesen aus Excel PPM
    57. txt8 = sheet1.Range("C9").Value()
    58. txt9 = sheet1.Range("C8").Value()
    59. txt10 = sheet1.Range("C7").Value()
    60. txt11 = sheet1.Range("C6").Value()
    61. txt12 = sheet1.Range("C5").Value()
    62. txt13 = sheet1.Range("C4").Value()
    63. txt14 = sheet1.Range("C3").Value()
    64. 'Werte auslesen aus Excel Status
    65. txt15 = sheet1.Range("D9").Value()
    66. txt16 = sheet1.Range("D8").Value()
    67. txt17 = sheet1.Range("D7").Value()
    68. txt18 = sheet1.Range("D6").Value()
    69. txt19 = sheet1.Range("D5").Value()
    70. txt20 = sheet1.Range("D4").Value()
    71. txt21 = sheet1.Range("D3").Value()
    72. 'EFF/H ber=echnung
    73. eff1 = CDbl(txt1)
    74. eff2 = CDbl(txt2)
    75. eff3 = CDbl(txt3)
    76. eff4 = CDbl(txt4)
    77. eff5 = CDbl(txt5)
    78. eff6 = CDbl(txt6)
    79. eff7 = CDbl(txt7)
    80. eff1 = eff1 * 100
    81. eff2 = eff2 * 100
    82. eff3 = eff3 * 100
    83. eff4 = eff4 * 100
    84. eff5 = eff5 * 100
    85. eff6 = eff6 * 100
    86. eff7 = eff7 * 100
    87. 'PPM berechnung
    88. ppm1 = txt14
    89. ppm2 = txt13
    90. ppm3 = txt12
    91. ppm4 = txt11
    92. ppm5 = txt10
    93. ppm6 = txt9
    94. ppm7 = txt8
    95. 'Status berechnung
    96. Status1 = txt21
    97. Status2 = txt20
    98. Status3 = txt19
    99. Status4 = txt18
    100. Status5 = txt17
    101. Status6 = txt16
    102. Status7 = txt15
    103. 'uebergabe errechneter Wert EFF/H
    104. TextBox1.Text = eff1 & "%"
    105. TextBox2.Text = eff2 & "%"
    106. TextBox3.Text = eff3 & "%"
    107. TextBox4.Text = eff4 & "%"
    108. TextBox5.Text = eff5 & "%"
    109. TextBox6.Text = eff6 & "%"
    110. TextBox7.Text = eff7 & "%"
    111. 'uebergabe errechneter Wert PPM
    112. TextBox14.Text = ppm1
    113. TextBox13.Text = ppm2
    114. TextBox12.Text = ppm3
    115. TextBox11.Text = ppm4
    116. TextBox10.Text = ppm5
    117. TextBox9.Text = ppm6
    118. TextBox8.Text = ppm7
    119. 'uebergabe errechneter Wert Status
    120. TextBox21.Text = Status1
    121. TextBox20.Text = Status2
    122. TextBox19.Text = Status3
    123. TextBox18.Text = Status4
    124. TextBox17.Text = Status5
    125. TextBox16.Text = Status6
    126. TextBox15.Text = Status7
    127. 'MessageBox.Show(txt)
    128. Catch ex As Exception
    129. MessageBox.Show("File not found.")
    130. Finally
    131. sheet1.Workbooks.Close()
    132. End Try
    133. If Application.AllowQuit Then
    134. Return True
    135. Else
    136. Return False
    137. End If
    138. End Function


    *Spoiler und CodeTags eingefügt* ~NoFear23m

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Nofear23m“ ()

    1.

    VaporiZed schrieb:

    btw: bitte CodeTags verwenden

    2. Für solche Codemengen gibt es den .
    3. Es fehlt das sheets1.Quit, was dann Excel beendet. Obwohl es etwas komisch ist, dass Du Deine Excel-Programminstanz sheet1 nennst. Führte bei mir zu Verwirrung, aber wurscht.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Moin! :)
    Ich habe den Code geschrieben.
    Du musst nur das mit den Prozenten klären.
    Da ich nicht mehr Informationen habe, kann ich leider nicht weiter helfen.
    Ich hoffe aber dass dir mein Code weiter hilft.
    BIG THX

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. ' Prüfe Werte...
    3. If Me.TextBox1.Text = "" Then Exit Sub
    4. If Not IsNumeric(Me.TextBox1.Text) Then Exit Sub
    5. ' Wert auslesen...
    6. Dim Wert As Double = Double.Parse(Me.TextBox1.Text)
    7. If Wert < 84 Then
    8. TextBox1.BackColor = Color.Red
    9. ElseIf Wert > 95 Then
    10. TextBox1.BackColor = Color.Green
    11. Else
    12. TextBox1.BackColor = Color.Yellow
    13. End If
    14. End Sub
    Visual Basic.NET 8o
    MS-SQL
    8o
    Wenn, dann eher so:

    VB.NET-Quellcode

    1. Dim Wert = 0.0
    2. If Not Double.TryParse(TextBox1.Text, Wert) Then Return 'IsNumeric ist im VB6-Namespace!

    Allerdings kann "85%" und Co. nicht in nen Double konvertiert werden. Also müsste vorher erytmal das % wegrationalisiert werden, Stichwort SubString oder Replace.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @Bjoern bitte gebe dir ein wenig mühe und versuche die Editorfunktionen zu verwenden.
    Das Thema habe ich verschoben und die CodeTags eingefügt, bitte in Zukunft darauf zu achten. Danke dir.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##