Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1280to1284
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
Inhaltsverzeichnis

Schaltjahr und Kalenderwoche mit VBA

Schaltjahr und Kalenderwoche mit VBA
23.10.2012 07:59:17
Werner
Hallo Leute,
ich möchte mit VBA:
1. Feststellen ob das Jahr X ein Schaltjahr ist, z.B. eine Funktion erstellen:
Function Schaltjahr(Jahr as String) as Boolean
End Function
Der Aufruf wäre dann z.B. If Schaltjahr(2012) then .... Else ....
2. Eine Kalenderwoche mit Anfangsdatum umd Wochentag berechnen
z.B. gebe ich die KW 43 des Jahres 2012 an und bekomme zurück: Mo 22.10.2012
den Rest der KW könte ich mir an Hand dieser Werte dann berechnen.
kann mir jemand weiterhelfen?
Schon mal Danke für euere Vorschläge.
Freundliche Grüße
Werner

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

Betreff
Datum
Anwender
Anzeige
Schaltjahr und Datum aus KW (VBA)
23.10.2012 09:02:51
Erich
Hi Werner,
mein Vorschlag:

Option Explicit
Function MySchaltjahr(iJahr As Integer) As Boolean
Schaltj = Day((CDate(3 & (-iJahr)) - 1)) = 29
End Function
Function WoBeg(iJahr As Integer, iKW As Integer) As Date
WoBeg = 7 * Application.Round((CDate(7 & (1 - iJahr)) / 7) + iKW, 0) + 177
End Function
Sub aTest()
MsgBox WoBeg(2012, 53)
MsgBox Schaltj(2005)
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Schaltjahr und Datum aus KW (VBA) - Korrektur
23.10.2012 09:45:13
Erich
Hi Werner,
ich sollte so etwas nicht schnell nebenher machen...
Wenn eine Fkt. "MySchaltjahr" heißt, muss der Wert auch MySchaltjahr zugewiesen werden, nicht aber Schaltj.
Hier neu:

Option Explicit
Function Schaltj(iJahr As Integer) As Boolean
Schaltj = Day(DateSerial(iJahr, 3, 0)) = 29
End Function
Function WoBegA(iJahr As Integer, iKW As Integer) As Date
WoBegA = 7 * Application.Round((DateSerial(iJahr - 1, 7, 1) / 7) + iKW, 0) + 177
End Function
Function WoBegB(iJahr As Integer, iKW As Integer) As Date
WoBegB = 7 * Fix((DateSerial(iJahr - 1, 7, 4) / 7) + iKW) + 177
End Function
Sub aTest()
MsgBox Format(WoBegA(2012, 53), "ddd  dd.mm.yyyy")
MsgBox Format(WoBegB(2012, 53), "ddd  dd.mm.yyyy")
MsgBox Schaltj(2011)
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Schaltjahr und Datum aus KW (VBA) - Korrektur
23.10.2012 10:45:14
Werner
Hallo Erich,
deine Beispiele sind Super, alles läuft prima.
Du hast mir sehr geholfen.
Vielen Dank für deine Hilfe
Freundliche Grüße
Werner

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige