Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
984to988
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
984to988
984to988
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kalendarwoche berechnen

Kalendarwoche berechnen
17.06.2008 09:12:40
Hans-Jürgen
Hallo,
ich möchte gerne die Kalenderwoche berechen.
Ich habe ein VBA-Script geschrieben welches mir vom aktuellem Monat ein Kalenderblatt erstellt. Also mit Tag und Datum und Platz um 3-4 Mitarbeiter und ihre Zeiten denn später nachzutragen.
Hab es mir so gedacht...
If Weekday(d) = 2 Then
// KW berechnen und eintragen
// hier benötige ich eine einfache Berechnung
End If
Eine Berechnung ála =KÜRZEN((HEUTE()-WOCHENTAG(HEUTE();2)-DATUM(JAHR(HEUTE()+4-WOCHENTAG(HEUTE();2));1;-10))/7)
funktionier leider nicht.
Meine bisher erstelle Datei https://www.herber.de/bbs/user/53156.xls
Vielen Dank im voraus

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kalendarwoche berechnen
17.06.2008 10:17:48
Rudi
Hallo,
so:

Function DINKW(dteDatum)
' Kalenderwoche nach DIN
Dim tmp
tmp = DateSerial(Year(dteDatum + (8 - Weekday(dteDatum)) Mod 7 - 3), 1, 1)
DINKW = ((dteDatum - tmp - 3 + (Weekday(tmp) + 1) Mod 7)) \ 7 + 1
End Function


Gruß
Rudi

AW: Kalendarwoche berechnen
17.06.2008 10:18:38
fcs
Hallo Hans-Jürgen,
füge "einfach" nach dem Eintragen des Datums in die Spalten B und C die KW-Formel in Spalte A ein, wenn Wochentag =2 (Montag). Dann Zell-Formel durch Zell-Wert erstzen.
Gruß
Franz

For Tag = 1 To AnzTage
With Cells(Tag + 2, 3)
d = DateSerial(Jahr, Monat, Tag)
.Value = d
'prüfen ob Sa / So wenn ja Hintergrundfarbe grau -25%
If Weekday(d) = 1 Or Weekday(d) = 7 Then
Range(Cells(Tag + 2, 2), (Cells(Tag + 2, 9))).Interior.ColorIndex = 15
End If
Cells(Tag + 2, 2) = d
If Weekday(d) = 2 Then
'KW-Formel an Montagen in Spalte 1 eintragen und Formel durch Wert ersetzen
With .Offset(0, -2)
.FormulaR1C1 = _
.FormulaR1C1 = "=TRUNC((R[0]C[1]-WEEKDAY(R[0]C[1],2)-DATE(YEAR(R[0]C[1]" _
& "+4-WEEKDAY(R[0]C[1],2)),1,-10))/7)"
'Formel durch Wert ersetzen
.Value = .Value
End With
End If
End With
Next Tag


Anzeige
AW: Kalendarwoche berechnen - Korrektur
17.06.2008 10:23:08
fcs
Hallo Hans-Jürgen,
beim Editieren hat der Fehlerteufel zugeschlagen
Gruß
Franz

For Tag = 1 To AnzTage
With Cells(Tag + 2, 3)
d = DateSerial(Jahr, Monat, Tag)
.Value = d
'prüfen ob Sa / So wenn ja Hintergrundfarbe grau -25%
If Weekday(d) = 1 Or Weekday(d) = 7 Then
Range(Cells(Tag + 2, 2), (Cells(Tag + 2, 9))).Interior.ColorIndex = 15
End If
Cells(Tag + 2, 2) = d
If Weekday(d) = 2 Then
'KW-Formel an Montagen in Spalte 1 eintragen und Formel durch Wert ersetzen
With .Offset(0, -2)
.FormulaR1C1 = "=TRUNC((R[0]C[1]-WEEKDAY(R[0]C[1],2)-DATE(YEAR(R[0]C[1]" _
& "+4-WEEKDAY(R[0]C[1],2)),1,-10))/7)"
'Formel durch Wert ersetzen
.Value = .Value
End With
End If
End With
Next Tag


Anzeige
AW: Kalendarwoche berechnen - Korrektur
17.06.2008 10:54:00
Hans-Jürgen
kuhl, klasse funktioniert super... wäre ich so nicht drauf gekommen
vielen vielen dank
Jetzt wäre das nur noch das Problem, dass er es nur für den Montag macht und nicht zum Monatsbeginn, aber ohne kann ich auch leben, mir genügt das schon so

AW: Kalendarwoche berechnen - Korrektur
17.06.2008 12:43:00
fcs
Hallo Hans-Jürgen,
da muss du die If-Bedingung entsprechend verfeinern
z.B.

If WeekDay(d) = 2 Or (Tag = 1 And Not (WeekDay(d) = 1 Or WeekDay(d) = 7)) Then


Trägt die die KW am 1. Tag des Monats ein wenn dieser auf Mo bis Fr fällt.
Gruß
Franz

Anzeige
AW: Kalendarwoche berechnen - Korrektur
17.06.2008 13:26:00
Hans-Jürgen
ihr seid super
funktioniert auch, obwohl beim ersten lesen komme ich nicht auf die Funktion, muss ich mir gleich mal genauer angucken was da abgefragt wird, irgendwie nicht Tag 1 und Tag 7, also Samstag und Sonntag aber Tag 1 ist, doch jetzt hab ich das kapiert
Vielen Dank nochmal
LG, Hans-Jürgen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige