Clever-Excel-Forum

Normale Version: 2 Werte auslesen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo!

Ich habe eine Tabelle, wo ich Gehälter eintrage. Nun möchte ich, dass wenn ich z.B. im September 2000 den Betrag 1000 eingebe, dass dann in einer Meldung (MsgBox) genau dieses Monat und Jahr steht, nämlich so:

Gratuliere, du hast bereits mit dem Monatsgehalt September 2000 um € " & Format(Range("$M$4") - Range("$N$4"), "#,##0.00") & " mehr verdient, als im Jahr " & Range("$N$3") & ", wo dein letzter bester Jahresverdienst € " & Format(Range("$N$4"), "#,##0.00") & " ausgemacht hat."

Statt September 2000 gehört natürlich ein VBA Code, den ich aber leider nicht zusammen bringe.
Ich hoffe, dass mir jemand helfen kann. Damit man sich besser was darunter vorstellen kann, habe ich die Datei mit angehängt.
Hallo,

so kannst Du es machen, wenn es nicht dynamisch sein soll:


Zitat:Private Sub Worksheet_Change(ByVal Target As Excel.Range)

With ThisWorkbook.Worksheets("neu")
 
    If Target.Column < 13 And .Range("M4").Value > .Range("N4").Value And .Range("L4").Value > .Range("N5").Value Then 'vor Jahresende bereits am meisten in diesem Jahr verdient'
        MsgBox "Gratuliere, du hast bereits mit dem Monatsgehalt " & Range("J9").Value & " " & Range("A11").Value & " um € " & Format(Range("$M$4") - Range("$N$4"), "#,##0.00") & " mehr verdient, als im Jahr " & Range("$N$3") & ", wo dein letzter bester Jahresverdienst € " & Format(Range("$N$4"), "#,##0.00") & " ausgemacht hat."
        '.Range("N5").Value = .Range("L4").Value'
    End If
 
End With
 
End Sub
Grüße


NobX
Hallo.

Danke für den Code. Ich habe mich vielleicht nicht klar genug ausgedrückt.
Es kann auch sein, dass es nicht der September sondern der Oktober ist und vielleicht auch ein anderes Jahr. Es kommt eben drauf an, in welcher Zelle ich den Betrag eingegeben habe, muss ein Bezug auf das Monat und dem Jahr hergestellt werden.
Hallo,

wenn Du es dynamisch haben möchtest, dann mache es z. B. so:

Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim t_col, t_row As Integer
Dim a_nx As Variant


t_col = Target.Column
t_row = Target.Row
a_nx = Tabelle4.Range("A1:M13")

With ThisWorkbook.Worksheets("neu")
    If Target.Column < 13 And .Range("M4").Value > .Range("N4").Value _
    And .Range("L4").Value > .Range("N5").Value Then
        MsgBox "Gratuliere, du hast bereits mit dem Monatsgehalt " & _
        a_nx(9, t_col) & " " & a_nx(t_row, 1) _
       & " um € " & Format(Range("$M$4") - Range("$N$4"), "#,##0.00") & _
       " mehr verdient, als im Jahr " & Range("$N$3") _
       & ", wo dein letzter bester Jahresverdienst € " & _
       Format(Range("$N$4"), "#,##0.00") & " ausgemacht hat."
    End If
   
End With
 
End Sub

Falls Du weiter als bis zur Zeile 13 gehen willst, musst Du das Array entsprechend in der Größe anpassen.

Grüße

NobX
Hallo!

Danke sehr für den Code, du hast mir sehr damit geholfen. Er funktioniert genau so, wie ich es mir vorgestellt habe.

LG
Thomas