Thema Datum  Von Nutzer Rating
Antwort
Rot Daten aus Datum
06.11.2014 18:11:09 Tim
NotSolved

Ansicht des Beitrags:
Von:
Tim
Datum:
06.11.2014 18:11:09
Views:
1228
Rating: Antwort:
  Ja
Thema:
Daten aus Datum

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

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Daten aus Datum
06.11.2014 18:11:09 Tim
NotSolved