Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Kalenderwoche in Datum umwandeln

1,089 views
Skip to first unread message

Andreas Hensen

unread,
Dec 18, 1997, 3:00:00 AM12/18/97
to

Hallo,
wer kann mir bei einem Problemchen auf die Spruenge helfen:
Ich moechte eine VBA-Function schreiben, die folgendes leistet:
Input: Kalenderwoche als long-Variable
Output: Datum des ersten Arbeitstages der Woche (als date)
das KalenderJahr soll dabei aus der Systemzeit gezogen werden
also z.B.: aus KW 51 wird der 15.12.1997
In der Microsoft Knowledgebase gibt es eine Function, die die deutsche
Kalenderwoche aus einem gegebenen Datum berechnet.
Wie kann ich Excel dazu bewegen, genau den umgekehrten Weg
zu gehen ???
Fue Tips bin ich dankbar.

--
_____________________
Andreas Hensen
hen...@quantum.de


Hans Werner Hofmann

unread,
Dec 19, 1997, 3:00:00 AM12/19/97
to

KÖnnte das sowas sein?
Function KWDatum(Kalenderwoche As Integer, Jahr As Date) As Date
tYear = DateSerial(Year(Jahr), 1, 1)
KWDatum = tYear + 1 - Application.WeekDay(tYear, 2) + (Kalenderwoche
- 1) * 7
End Function

Teste das mal...
=KWDatum(51;HEUTE())
Gruß HW
--
---==## Hans Werner Hofmann ##==---
Fachschule fuer Lebensmitteltechnik
E.C.Baumann-Str.22 95326 Kulmbach
INFO: http://www.tmt.de/~hhofmann

Hans Werner Hofmann

unread,
Dec 19, 1997, 3:00:00 AM12/19/97
to

Hans W. Herber

unread,
Dec 19, 1997, 3:00:00 AM12/19/97
to

Hallo Andreas,

folgende - nicht ausgetestete - benutzerdefinierte Funktion:

Function KWC(d, j)
    Dim b As Integer
    If d > 53 Then
        KWC = ""
        Exit Function
    End If
    b = WeekDay(DateSerial(j, 1, 1))
    If d = 1 Then
        If b = 1 Then
            KWC = DateSerial(j, 1, 2)
        Else
            KWC = DateSerial(j, 1, 1)
        End If
    Else
        If b < 6 Then
            KWC = DateSerial(j, 1, 1) + ((d - 2) * 7) + 9 - b
        Else
            KWC = DateSerial(j, 1, 1) + ((d - 1) * 7) + 9 - b
        End If
    End If
    If Year(KWC) > j Then KWC = ""
End Function

d ist die Kalenderwoche, j das Jahr, die Eingabesyntax ist also bspw.:

=KWC(24;1993)

Gruss Hans

--
****************************************************
* Herber's Excel-Server - letztes Update: 07.12.97 *
* http://www.herber.de - Mail: webm...@herber.de *
*              Microsoft MVP - Excel               *
*     Alle Demos jetzt im XLS- und ZIP-Format      *
****************************************************

0 new messages