17.11.2023, 09:02
Hallo!
Ich habe folgendes Problem. In einer MsgBox sollen Werte angezeigt, leider passt die Zusammensetzung nicht ganz und ich schaffe es einfach nicht.
Hier einmal mein Code:
Nun ist es so, dass die Werte von Inhalt3 nicht richtig aufbereitet werden bzw. dann in der Msgbox nicht richtig angezeigt werden, so wie ich das will.
Ich möchte nämlich (siehe Screenshot), dass im Jahr 2021 2 Auszahlungen steht, im Jahr 2022 4 Auszahlungen und im Jahr 2023 3 Auszahlungen steht.
Derzeit werden nämlich immer alle Inhalte von Inhalt3 pro Zeile angezeigt, was ich nicht will. Es soll nämlich immer nur ein Wert (Summe und Auszahlungen) pro Jahr angezeigt werden.
Mir ist natürlich bewusst, dass der Fehler bei mir liegt, aber ich schaffe es leider nicht.
Ich hoffe, dass mir jemand helfen kann.
Ich habe folgendes Problem. In einer MsgBox sollen Werte angezeigt, leider passt die Zusammensetzung nicht ganz und ich schaffe es einfach nicht.
Hier einmal mein Code:
Code:
Private Sub ComboBox2_Change()
Dim i As Integer
Dim Inhalt As String
Set Suche = ThisWorkbook.Worksheets("Top30 - Teil 1").Columns("Q").Find(What:=ComboBox2.Value, LookAt:=xlWhole)
Set Suche2 = ThisWorkbook.Worksheets("Auszahlungen").Columns("P").Find(What:=ComboBox2.Value, LookAt:=xlWhole)
Set Suche3 = ThisWorkbook.Worksheets("Auszahlungen").Columns("P").Find(What:=ComboBox2.Value, LookAt:=xlWhole)
If Not Suche3 Is Nothing Then
For i = 180 To 251
If Worksheets("Auszahlungen").Cells(Suche3.Row, i) = 1 Then
Inhalt3 = Inhalt3 & " (" & Format(Worksheets("Auszahlungen").Cells(Suche3.Row, i), "0 Auszahlung)")
Else
If Worksheets("Auszahlungen").Cells(Suche3.Row, i) > 1 Then
Inhalt3 = Inhalt3 & " (" & Format(Worksheets("Auszahlungen").Cells(Suche3.Row, i), "0 Auszahlungen)")
End If
End If
Next i
End If
If Not Suche2 Is Nothing Then
For i = 17 To 88
If Worksheets("Auszahlungen").Cells(Suche2.Row, i) <> 0 Then
Inhalt2 = Inhalt2 & Chr(10) & Year(Worksheets("Auszahlungen").Cells(1, i)) & ": " & Format(Worksheets("Auszahlungen").Cells(Suche2.Row, i), "€ #,##0.00") & Inhalt3
End If
Next i
End If
If Worksheets("Auszahlungen").Cells(Suche2.Row, "CW") = 1 Then 'nur 1 Auszahlungsjahr für Jahresvergleich'
MsgBox "Jahresverdienst zu """ & ComboBox2.Value & """:" & String(2, vbNewLine) & _
Inhalt2 & String(2, vbNewLine) & _
Worksheets("Top30 - Teil 1").Cells(Suche.Row, "P") & ". Rang nach Beträgen" & String(1, vbNewLine) & _
"Ø Verdienst pro Jahr: € " & Format(Cells(Suche.Row, "AS"), "#,##0.00") & String(1, vbNewLine) & _
"Gesamtverdienst: € " & Cells(Suche.Row, "BO")
Else
If Worksheets("Auszahlungen").Cells(Suche2.Row, "CW") > 1 And Year(Worksheets("Auszahlungen").Cells(Suche2.Row, "CT")) <> Year(Date) Then 'mehr als 1 Auszahlungsjahr für Jahresvergleich und höchster Jahresverdienst ist nicht aktuelles Jahr'
MsgBox "Jahresverdienste zu """ & ComboBox2.Value & """:" & String(2, vbNewLine) & _
Inhalt2 & String(2, vbNewLine) & _
"höchster Jahresverdienst war im Jahr " & Format(Worksheets("Auszahlungen").Cells(Suche2.Row, "CT"), "YYYY") & " mit € " & Format(Worksheets("Auszahlungen").Cells(Suche2.Row, "CS"), "#,##0.00") & String(2, vbNewLine) & _
Worksheets("Top30 - Teil 1").Cells(Suche.Row, "P") & ". Rang nach Beträgen" & String(1, vbNewLine) & _
"Ø Verdienst pro Jahr: € " & Format(Cells(Suche.Row, "AS"), "#,##0.00") & String(1, vbNewLine) & _
"Gesamtverdienst: € " & Cells(Suche.Row, "BO")
Else
If Worksheets("Auszahlungen").Cells(Suche2.Row, "CW") > 1 And Year(Worksheets("Auszahlungen").Cells(Suche2.Row, "CT")) = Year(Date) Then 'mehr als 1 Auszahlungsjahr für Jahresvergleich und höchster Jahresverdienst ist aktuelles Jahr'
MsgBox "Jahresverdienste zu """ & ComboBox2.Value & """:" & String(2, vbNewLine) & _
Inhalt2 & String(2, vbNewLine) & _
"höchster Jahresverdienst ist dieses Jahr mit € " & Format(Worksheets("Auszahlungen").Cells(Suche2.Row, "CS"), "#,##0.00") & String(2, vbNewLine) & _
Worksheets("Top30 - Teil 1").Cells(Suche.Row, "P") & ". Rang nach Beträgen" & String(1, vbNewLine) & _
"Ø Verdienst pro Jahr: € " & Format(Cells(Suche.Row, "AS"), "#,##0.00") & String(1, vbNewLine) & _
"Gesamtverdienst: € " & Cells(Suche.Row, "BO")
End If
End If
End If
End Sub
Nun ist es so, dass die Werte von Inhalt3 nicht richtig aufbereitet werden bzw. dann in der Msgbox nicht richtig angezeigt werden, so wie ich das will.
Ich möchte nämlich (siehe Screenshot), dass im Jahr 2021 2 Auszahlungen steht, im Jahr 2022 4 Auszahlungen und im Jahr 2023 3 Auszahlungen steht.
Derzeit werden nämlich immer alle Inhalte von Inhalt3 pro Zeile angezeigt, was ich nicht will. Es soll nämlich immer nur ein Wert (Summe und Auszahlungen) pro Jahr angezeigt werden.
Mir ist natürlich bewusst, dass der Fehler bei mir liegt, aber ich schaffe es leider nicht.
Ich hoffe, dass mir jemand helfen kann.
Excel Version 2016