AW: Zelle um eine Zahl addieren
10.08.2016 15:44:45
Bastian
Hallo Denver Ich hab eben noch mal geguckt einfach eine dictionary mit deinen SonderTage füllen lassen diese müssen aber am ende des Monats liegen Hab nun 2 Sonder Daten eingetragen
Gruß Basti
Sub finden()
Dim DatumNew As Date
Dim rngLetzterTag As Range
Dim Betrag As Double
Dim Heute As Date
Dim FT As String
Dim Dic As Object
Set Dic = CreateObject("scripting.dictionary")
With Dic
For Each it In Array("31.08.2016", "30.08.2016", "xx") ''--- Hier die Sonder Tage eintragen _
;)
y = .Item(it)
Next
End With
Heute = Worksheets("Tabelle1").Range("A1") ' Erstes Datum der Tabelle1
Betrag = Worksheets("Tabelle1").Range("D1")
Do
LastDatM = Day(DateSerial(Year(Heute), Month(Heute) + 1, 0))
DatumNew = CDate(LastDatM & "." & Format(Heute, "MM.YYYY"))
Set rngLetzterTag = ThisWorkbook.Worksheets("Tabelle1").Columns("A:A").Find(What:=CDate( _
DatumNew), LookIn:=xlFormulas, LookAt:=xlWhole)
If rngLetzterTag Is Nothing Then Exit Do
DatumNew = rngLetzterTag.Value
Do
FT = FeiertagDE(DatumNew, "NW")
SonderTage (CStr(DatumNew))
If Not (Format(DatumNew, "DDD") = "Sa" Or Format(DatumNew, "DDD") = "So" Or Not FT = "" Or _
Dic.exists(CStr(DatumNew)) = "Wahr") Then
rngLetzterTag.Offset(i, 1) = Betrag: Exit Do
End If
If Format(DatumNew, "DDD") = "Sa" Then rngLetzterTag.Offset(i, 1).Interior.ColorIndex = 4: _
rngLetzterTag.Offset(i, 1) = "Samstag"
If Format(DatumNew, "DDD") = "So" Then rngLetzterTag.Offset(i, 1).Interior.ColorIndex = 4: _
rngLetzterTag.Offset(i, 1) = "Sonntag"
If Not FT = "" Then rngLetzterTag.Offset(i, 1).Interior.ColorIndex = 4: rngLetzterTag. _
Offset(i, 1) = FT
If Dic.exists(CStr(DatumNew)) = "Wahr" Then rngLetzterTag.Offset(i, 1).Interior. _
ColorIndex = 6: rngLetzterTag.Offset(i, 1) = "SonderTag"
i = i - 1
DatumNew = DatumNew - 1
Loop
Heute = DateSerial(Year(Heute), Month(Heute) + 1, Day(Heute))
i = 0
Loop
End Sub