Hallo zusammen,
ich habe eine Excel Datei bei der wenn man ein start und End Datum eingibt, mir es die tats. Tage von diesem Monat berechnet und die dazugehörigen Punkte.
Bsp.
von: 02.02.2010 bis 15.06.2010
Excel geht zum Monat 2 und trägt mir die tats. Tage ein. In diesm fall 26 (Monat Februar hat 28 Tage, ich hab den 2.2 eingegeben, also tats. 26 Tage). Die Monate dazwischen füllt es mir komplett aus. Im Monat 6 stehen dann wieder tats. Tage 15 dran. In A27:A102 stehen mehrere Punkte. Hier errechnt mir Excel die tats. Punkte der tats. Tage vom jeweiligen Monat.
ich hoffe Ihr könnt mir bei folgenden 3 Punkte weiterhelfen. Ich bekomme es nicht hin.
1.
Wollte ich das in C19 das Datum nicht automatisch berechnet wird, sondern das man manuell ein Datum eingeben kannn.
Und diesen Zeitraum soll es mir dann in D19 berechnen. Die Punkte für die berechnung stehen in A27:A102.
Dabei ist noch wichtig das es die tatsächlichen Punkte von den Monaten berechnet. Bsp.
(B19) 03.05.2011 - dann soll es mir im Jahr 2011 im Monat 5 nicht die vollen Punkte nehmen, sondern von 28 Tagen.
Das gleiche natürlich auch mit dem Enddatum (C19)
2.
In D20 sollte es auch nur die tats. Punkte vom Zeitraum B20 und C20 berechnen
3.
Das es noch übersichtlicher ist, sollte es die Daten von B19 und C19 in H27:H102 übernhemen. B20 und C20 sollte in J27:J102 stehen. So wie es auch in den tats. Tage die Spalten zuvor ist.
Ich hoffe ich habs verständlich erklärt.
Danke schonmal und Gruß
Tim
Private Sub CommandButton1_Click()
Dim Start As Date
Dim Ende As Date
Dim Monat As Long
Dim i As Long
Dim ZeileStart As Long, ZeileEnde As Long
Dim Jahr1 As Long, ZeileJahr1 As Long
Dim dblSum As Double
'Daten zum 1. Jahr aus Refernzzelle einlesen
With Me.Range("A25")
Jahr1 = .Value
ZeileJahr1 = .Row
End With
'Datumsangaben Zeile 12 bearbeiten
Start = Me.Range("B12").Value
Ende = Me.Range("C12").Value
ZeileStart = ZeileJahr1 + (Year(Start) - Jahr1) * 16 + 1 + Month(Start)
ZeileEnde = ZeileJahr1 + (Year(Ende) - Jahr1) * 16 + 1 + Month(Ende)
Me.Cells(ZeileStart, 4).Value = Me.Cells(ZeileStart, 3) - Day(Start)
Me.Cells(ZeileEnde, 4).Value = Day(Ende)
For i = ZeileStart + 1 To ZeileEnde - 1
Select Case Me.Cells(i, 2).Value
Case 1 To 12
Me.Cells(i, 4).Value = Me.Cells(i, 3)
End Select
Next i
'Datumsangaben Zeile 16 bearbeiten
If Me.Range("B16").Value > 0 And Me.Range("C16").Value > 0 Then
Start = Me.Range("B16").Value
Ende = Me.Range("C16").Value
ZeileStart = ZeileJahr1 + (Year(Start) - Jahr1) * 16 + 1 + Month(Start)
ZeileEnde = ZeileJahr1 + (Year(Ende) - Jahr1) * 16 + 1 + Month(Ende)
Me.Cells(ZeileStart, 6).Value = Me.Cells(ZeileStart, 3) - Day(Start)
Me.Cells(ZeileEnde, 6).Value = Day(Ende)
For i = ZeileStart + 1 To ZeileEnde - 1
Select Case Me.Cells(i, 2).Value
Case 1 To 12
Me.Cells(i, 6).Value = Me.Cells(i, 3)
End Select
Next i
End If
'Summenberechnen
Range("D12") = Application.Sum(Range("E27:E100"))
Range("D16") = Application.Sum(Range("G27:G100"))
'Datumsangaben Zeile 19 ermitteln
If Range("C16") = "" Then
Range("B19").Value = Range("C12") + 1
Else
Range("B19").Value = Range("C16") + 1
End If
Dim Datum As Date
Dim VarDatum As Date
Datum = WorksheetFunction.Max _
(Me.Range("B12").Value, Me.Range("C12").Value, _
Me.Range("B16").Value, Me.Range("C16").Value)
Datum = "01." & Month(Datum) + 1 & "." & Year(Datum)
VarDatum = "30.06." & Year(Datum)
If Datum < VarDatum Then
Me.Range("C19").Value = VarDatum
Else
VarDatum = "31.12." & Year(Datum)
Me.Range("C19").Value = VarDatum
End If
'Ergebnis für Datumsangaben Zeile 19 ermitteln
Start = Me.Range("B19").Value
Ende = Me.Range("C19").Value
ZeileStart = ZeileJahr1 + (Year(Start) - Jahr1) * 16 + 1 + Month(Start)
ZeileEnde = ZeileJahr1 + (Year(Ende) - Jahr1) * 16 + 1 + Month(Ende)
dblSum = 0
For i = ZeileStart To ZeileEnde
Select Case Me.Cells(i, 2).Value
Case 1 To 12
dblSum = dblSum + Me.Cells(i, 1)
End Select
Next i
Me.Cells(19, 4).Value = dblSum
'Datumsangaben Zeile 20 ermitteln
With Me.Range("B19")
Me.Range("B20").Value = .Value
'Datum 1 Jahr später
Me.Range("C20").Value = DateSerial(Year(.Value) + 1, Month(.Value), Day(.Value)) - 1
End With
'Ergebnis für Datumsangaben Zeile 20 ermitteln
Start = Me.Range("B20").Value
Ende = Me.Range("C20").Value
ZeileStart = ZeileJahr1 + (Year(Start) - Jahr1) * 16 + 1 + Month(Start)
ZeileEnde = ZeileJahr1 + (Year(Ende) - Jahr1) * 16 + 1 + Month(Ende)
dblSum = 0
For i = ZeileStart To ZeileEnde
Select Case Me.Cells(i, 2).Value
Case 1 To 12
dblSum = dblSum + Me.Cells(i, 1)
End Select
Next i
Me.Cells(20, 4).Value = dblSum
End Sub
|