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.

2 Werte auslesen
#1
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.


Angehängte Dateien
.xls   neu.XLS (Größe: 69,5 KB / Downloads: 9)
Excel Version 2016
Antworten Top
#2
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
Antworten Top
#3
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.
Excel Version 2016
Antworten Top
#4
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
Antworten Top
#5
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
Excel Version 2016
Antworten Top


Gehe zu:


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