Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Kalenderwoche berechnen VBA

Forumthread: Kalenderwoche berechnen VBA

Kalenderwoche berechnen VBA
29.01.2003 09:31:08
Christian
Hi !

Wie berechnet man unter VBA die Kalenderwoche eines Datums?
Wenn möglich ohne Add-In, da das Makro auf einem anderen Rechner laufen muss.

Vielen Dank.
Christian

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Kalenderwoche berechnen VBA
29.01.2003 09:34:08
Hajo_Zi

Hallo Chritian

Kalenderwoche nach DIN
Function KALENDERWOCHE_DIN(Datum As Date) As Integer
'von Christoph Kremer, Aachen
'Berechnt die KW nach DIN 1355
Dim t&
t = DateSerial(Year(Datum + (8 - Weekday(Datum)) Mod 7 - 3), 1, 1)
KALENDERWOCHE_DIN = (Datum - t - 3 + (Weekday(t) + 1) Mod 7) \ 7 + 1
End Function

Oder im Register
Warum muß es so eine komlizierte Formel sein Erklärung von WF
Die Funktion KALENDERWOCHE rechnet falsch oder sagen wir es gnädiger: nach amerikanischem Standard. Der 01.01.2000 z.B. ist laut DIN die 52. KW des Jahres 1999; - in den USA die erste im Jahre 2000. Das hab ich mir irgendwann mal kopiert:
Erst 1976 wurde der Wochenbeginn auf Montag festgelegt. Die erste Woche des Jahres ist definiert als die Woche,in die mindestens 4 Tage fallen. Beides = DIN 1355 (1974) Entspricht der internationalen Norm ISO 8601 (1988); -übernommen von der EU als EN 28601 (1992) und in Deutschland als DIN EN 28601 (1993) umgesetzt.
=KÜRZEN((G6-WOCHENTAG(G6;2)-DATUM(JAHR(G6+4-WOCHENTAG(G6;2));1;-10))/7)&". KW"
von WF

Gruß ajo

Anzeige
Re: Kalenderwoche berechnen VBA
29.01.2003 09:41:25
L.Vira

Function KW_DIN(Datum)
KW_DIN = DatePart("ww", Datum, vbMonday, vbFirstFourDays)
End Function

Merci beaucoup
29.01.2003 09:55:04
Christian

.

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Kalenderwoche berechnen mit VBA


Schritt-für-Schritt-Anleitung

Um die Kalenderwoche mit VBA zu ermitteln, kannst Du eine Funktion erstellen, die das Datum als Parameter nimmt und die entsprechende Kalenderwoche zurückgibt. Hier sind die Schritte:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code ein:

    Function KALENDERWOCHE_DIN(Datum As Date) As Integer
        Dim t As Date
        t = DateSerial(Year(Datum + (8 - Weekday(Datum)) Mod 7 - 3), 1, 1)
        KALENDERWOCHE_DIN = (Datum - t - 3 + (Weekday(t) + 1) Mod 7) \ 7 + 1
    End Function
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Verwende die Funktion in einer Zelle, indem Du beispielsweise =KALENDERWOCHE_DIN(A1) eingibst, wobei A1 das Datum enthält, dessen Kalenderwoche Du berechnen möchtest.

Jetzt kannst Du mit der Funktion die Kalenderwoche ermitteln.


Häufige Fehler und Lösungen

  • Fehler: #NAME?

    • Lösung: Stelle sicher, dass der Funktionsname korrekt geschrieben ist und dass Du die Funktion in einem Modul definiert hast.
  • Fehler: Falsche Kalenderwoche

    • Lösung: Überprüfe, ob Du die richtige Methode zur Berechnung der Kalenderwoche verwendest. Die oben genannte Funktion folgt der DIN 1355.

Alternative Methoden

Falls Du eine einfachere Methode bevorzugst, kannst Du die DatePart-Funktion verwenden. Hier ist ein Beispiel:

Function KW_DIN(Datum As Date) As Integer
    KW_DIN = DatePart("ww", Datum, vbMonday, vbFirstFourDays)
End Function

Diese Funktion gibt ebenfalls die Kalenderwoche zurück, jedoch basierend auf den ersten vier Tagen der Woche.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du die Funktionen in Excel verwenden kannst:

  1. Berechnung der aktuellen Kalenderwoche:

    Sub AktuelleKalenderwoche()
        Dim kw As Integer
        kw = KALENDERWOCHE_DIN(Date)
        MsgBox "Die aktuelle Kalenderwoche ist: " & kw
    End Sub
  2. Kalenderwoche aus einem bestimmten Datum ermitteln:

    Wenn Du die Kalenderwoche für den 1. Januar 2023 ermitteln möchtest, kannst Du den folgenden Code verwenden:

    Sub KW_Ermitteln()
        Dim datum As Date
        datum = #1/1/2023#
        MsgBox "Die Kalenderwoche für " & datum & " ist: " & KALENDERWOCHE_DIN(datum)
    End Sub

Tipps für Profis

  • Nutze die Funktion vba isokalenderwoche, um die ISO-Standards zur Berechnung der Kalenderwoche zu verstehen und anzuwenden.
  • Wenn Du mit Outlook arbeitest, kannst Du die outlook wochennummer anzeigen-Funktion verwenden, um die Wochennummer direkt aus dem Outlook-Kalender abzurufen.

FAQ: Häufige Fragen

1. Wie kann ich die Kalenderwoche für ein Datum in einer Zelle berechnen?
Du kannst die Funktion direkt in einer Zelle verwenden, z.B. =KALENDERWOCHE_DIN(A1).

2. Gibt es eine Möglichkeit, die Kalenderwoche ohne VBA zu berechnen?
Ja, Du kannst die Excel-Funktion =KÜRZEN((G6-WOCHENTAG(G6;2)-DATUM(JAHR(G6+4-WOCHENTAG(G6;2));1;-10))/7)&". KW" verwenden, um die Kalenderwoche zu berechnen.

3. Wie kann ich die Kalenderwoche aus einem Datum im Format "JJJJ-MM-TT" ermitteln?
Stelle sicher, dass das Datum im richtigen Format vorliegt und benutze die oben genannten Funktionen, um die Kalenderwoche zu berechnen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige