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

Wechsel zwischen KW 53 und 1

Forumthread: Wechsel zwischen KW 53 und 1

Wechsel zwischen KW 53 und 1
23.01.2004 15:54:33
Oliver
Hallo zusammen, wer kann mir helfen diese Formel so zu verändern das der Wechsel zwischen der KW 53 und der 1 durch "FirstWeekOfYear" erkannt wird.

Private Sub txtDate_Change()
'Die KW wird vom eingegebenen Datum berechnet
On Error Resume Next
txtKW = DatePart("ww", txtDate)
If txtDate = "" Then txtKW = ""
End Sub

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wechsel zwischen KW 53 und 1
23.01.2004 16:01:25
soendi
hi!
warum kompliziert, wenn es auch einfach geht?
=WENN(F16="";"";(GANZZAHL((F16-DATUM(JAHR(F16);1;1)+WOCHENTAG(DATUM(JAHR(F16);1;1);3))/7)+WENN(WOCHENTAG(DATUM(JAHR(F16);1;1);3)<4;1;0)))
das datum steht hier in F16, die kalenderwoche wird ausgegeben...
gruss
soendi
AW: Wechsel zwischen KW 53 und 1
23.01.2004 16:01:32
soendi
hi!
warum kompliziert, wenn es auch einfach geht?
=WENN(F16="";"";(GANZZAHL((F16-DATUM(JAHR(F16);1;1)+WOCHENTAG(DATUM(JAHR(F16);1;1);3))/7)+WENN(WOCHENTAG(DATUM(JAHR(F16);1;1);3)<4;1;0)))
das datum steht hier in F16, die kalenderwoche wird ausgegeben...
gruss
soendi
Anzeige
AW: Wechsel zwischen KW 53 und 1
23.01.2004 16:08:56
von Oliver
Danke für die schnelle Hilfe. Da die bestehende Formel schon in einer Datei eingebaut ist, ist mir eine Lösung in VBA hilfreicher.
AW: Wechsel zwischen KW 53 und 1
23.01.2004 16:15:25
Yal
Hallo Oliver,
es gibt viele Gründe, warum eine Formel besser ist, als eine Makro.
Deine Begründung für eine Makro kann ich nicht nachvollziehen.
Kannst Du mehr Details geben?

Yal
Anzeige
AW: Wechsel zwischen KW 53 und 1
23.01.2004 16:51:53
von Oliver
Hi Yal
die Formel gehört zu einem Arbeitszeit-Erfassunfsprogramm das in VBA geschrieben ist daher kann ich die Formel so nicht einflechten. Dieses Programm schreibt die KW in ein Userformfeld und überträgt es dann in ein Arbeitsblatt. Ich brauche eine Lösung die, die erste KW erkennt ansonsten würde das Programm beim wechsel vom 31.12 auf den 01.01 zwei Mal die Wochenarbeitszeit berechen.
Gruß
Oliver
Anzeige
AW: Wechsel zwischen KW 53 und 1
23.01.2004 16:55:42
andre
hallo allerseits,
ist das gesucht?
Public

Sub test()
MsgBox Format(Date, "ww", vbMonday, vbFirstFourDays)
MsgBox DatePart("ww", Date, vbMonday, vbFirstFourDays)
End Sub

gruss andre
AW: Wechsel zwischen KW 53 und 1
23.01.2004 17:16:20
Gert Seler
Hallo Oliver,
VBA_DIN_KalenderWoche :

Function DIN_Kalenderwoche(dat As Date) As Integer
' Gert Seler 16-09-2003
Dim a As Integer
a = Int((dat - DateSerial(Year(dat), 1, 1) + _
((Weekday(DateSerial(Year(dat), 1, 1)) + 1) Mod 7) - 3) / 7) + 1
If a = 0 Then
a = DIN_Kalenderwoche(DateSerial(Year(dat) - 1, 12, 31))
ElseIf a = 53 And _
(Weekday(DateSerial(Year(dat), 12, 31)) - 1) Mod 7 <= 3 Then
a = 1
End If
DIN_Kalenderwoche = a
End Function

mfg
Gert
Anzeige
AW: Wechsel zwischen KW 53 und 1
23.01.2004 18:08:56
Von Oliver
Danke an alle für die Hilfe. Die perfekte Lösung war dabei.
Gruß
Oliver
;
Anzeige

Infobox / Tutorial

Wechsel zwischen KW 53 und 1 in Excel


Schritt-für-Schritt-Anleitung

Um den Wechsel zwischen der KW 53 und der KW 1 in Excel zu erkennen, kannst du folgende Schritte befolgen:

  1. Öffne dein Excel-Dokument und gehe zu dem Arbeitsblatt, wo du die Kalenderwoche berechnen möchtest.
  2. Gib in eine Zelle (z.B. F16) ein Datum ein, für das du die Kalenderwoche ermitteln möchtest.
  3. Verwende die folgende Formel in einer anderen Zelle, um die Kalenderwoche zu berechnen:
    =WENN(F16="";"";(GANZZAHL((F16-DATUM(JAHR(F16);1;1)+WOCHENTAG(DATUM(JAHR(F16);1;1);3))/7)+WENN(WOCHENTAG(DATUM(JAHR(F16);1;1);3)<4;1;0)))

    Diese Formel gibt dir die excel kalenderwoche 53 korrekt aus.

  4. Überprüfe das Ergebnis und stelle sicher, dass die Berechnung für den Jahreswechsel zwischen dem 31. Dezember und dem 1. Januar korrekt ist.

Häufige Fehler und Lösungen

  • Fehler: Falsche KW-Anzeige für den 1. Januar
    Lösung: Stelle sicher, dass das Datum in F16 korrekt eingegeben ist und die Formel ordnungsgemäß ist. Die oben genannte Formel berücksichtigt den Wechsel von KW 53 auf KW 1.

  • Fehler: Formel gibt einen Fehler aus
    Lösung: Überprüfe die Eingabe des Datums und die korrekte Verwendung der Funktion WOCHENTAG(). Achte auch darauf, dass die Zelle F16 nicht leer ist.


Alternative Methoden

Falls du VBA verwenden möchtest, um den Wechsel zwischen KW 53 und KW 1 zu erkennen, kannst du den folgenden VBA-Code verwenden:

Function DIN_Kalenderwoche(dat As Date) As Integer
    Dim a As Integer
    a = Int((dat - DateSerial(Year(dat), 1, 1) + _
    ((Weekday(DateSerial(Year(dat), 1, 1)) + 1) Mod 7) - 3) / 7) + 1
    If a = 0 Then
        a = DIN_Kalenderwoche(DateSerial(Year(dat) - 1, 12, 31))
    ElseIf a = 53 And _
    (Weekday(DateSerial(Year(dat), 12, 31)) - 1) Mod 7 <= 3 Then
        a = 1
    End If
    DIN_Kalenderwoche = a
End Function

Diese Funktion gibt die 53. Kalenderwoche korrekt aus und kann in deinen VBA-Projekten verwendet werden.


Praktische Beispiele

  1. Beispiel 1: Wenn F16 den Wert 01.01.2023 hat, gibt die Formel 1 zurück, da es sich um den ersten Tag der KW 1 handelt.
  2. Beispiel 2: Wenn F16 den Wert 31.12.2022 hat, gibt die Formel 53 zurück, weil der 31. Dezember zur KW 53 des Vorjahres gehört.

Tipps für Profis

  • Nutze die Funktion Format(Date, "ww", vbMonday, vbFirstFourDays) im VBA, um die KW 53 zu ermitteln.
  • Achte darauf, dass du die Wochentagskonventionen im VBA richtig einstellst, um Fehler zu vermeiden.
  • Teste deine Formeln und Funktionen regelmäßig, insbesondere um den Jahreswechsel herum, um sicherzustellen, dass sie korrekt arbeiten.

FAQ: Häufige Fragen

1. Welche KW haben wir gerade?
Du kannst die aktuelle Kalenderwoche mit der Formel =KALENDERWOCHE(HEUTE()) ermitteln.

2. Warum sollte ich VBA anstelle einer Formel verwenden?
VBA bietet mehr Flexibilität und kann in komplexeren Anwendungen eingesetzt werden, wie zum Beispiel in Arbeitszeiterfassungssystemen, die auf Benutzerformulare basieren.

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