Problem bei Monatsaddierung
13.08.2014 16:26:54
Thomas
ich würde gerne eine Schaltfläche erzeugen, die auf Knopfdruck Monate hinzuaddiert und immer auf das Monatsende springt.
Leider schaffe ich es nur, die Monate hochzuzählen. Sobald Feburar erreicht ist und der 28. drinnen steht tut sich allerdings nichts mehr in die andere Richtung :(
Habt ihr da eine Idee?
Hier mein Versuch, allerdings funktioniert es so nicht. Dabei wird nämlich auch vom 28.Feburar subtrahiert.
Private Sub AbschlussWartung_Click()
l = Cells(a, 2)
m = Cells(a, 13)
n = Cells(a, 4)
k = MsgBox("Sicher das die Wartung abgeschlossen ist?", vbYesNo + vbQuestion, "Wartung abschließ _
en")
If k = vbNo Then
Exit Sub
Else
Worksheets("Datenbank").Activate
With ActiveSheet
dtnewdate = DateAdd("m", m, l)
Cells(a, 2) = dtnewdate
End With
With ActiveSheet
' nur Tage anpassen, wenn schaltjahr(februar) oder 6 monatige Prüfung
If Month(n) + Cells(a, 13) = 1 Or 3 Or 5 Or 7 Or 8 Or 10 Or 12 Then
o = DateSerial(Year(n), Month(n) + Cells(a, 13), Day(n) - 1)
Cells(a, 4) = o
End If
If Month(n) + Cells(a, 13) = 4 Or 6 Or 9 Or 11 Then
o = DateSerial(Year(n), Month(n) + Cells(a, 13), Day(n) - 2)
Cells(a, 4) = o
End If
If Month(n) + Cells(a, 13) = 2 Then
o = DateSerial(Year(n), Month(n) + Cells(a, 13), Day(n) - 5)
Cells(a, 4) = o
End If
With ActiveSheet
e = Columns(1).Find(What:=ListBox1.Text, LookAt:=xlWhole).Row
Wartung.Text = Cells(e, 2).Value
End With
With ActiveSheet
f = Columns(1).Find(What:=ListBox1.Text, LookAt:=xlWhole).Row
KarenzWartung.Text = Cells(f, 4).Value
End With
i = MsgBox("Änderungen gespeichert!", vbOKOnly, "Änderungen übernommen")
Exit Sub
End With
End If
End Sub
Vielen Dank schonmal!
Gruß
Thomas