Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
516to520
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
516to520
516to520
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Ostern und 1094

Ostern und 1094
15.11.2004 12:23:44
Henri
Hallo, habe zwar schon im Forum gesucht, aber nur die folgende Formel gefunden:

Function Ostern(Jahr As Integer) As Date
Dim A%, B%, C%, D%, E%, M%, N%, P%
A = Jahr Mod 19
B = Jahr Mod 4
C = Jahr Mod 7
M = 24
N = 5
D = (19 * A + M) Mod 30
E = (2 * B + 4 * C + 6 * D + N) Mod 7
P = 22 + D + E
If P > 31 Then
If P = 56 And D = 28 And A > 10 Then
Ostern = DateSerial(Jahr, 4, 18)
ElseIf P = 57 Then
Ostern = DateSerial(Jahr, 4, 19)
Else
Ostern = DateSerial(Jahr, 4, P - 31)
End If
Else
Ostern = DateSerial(Jahr, 3, P)
End If
End Function

Wie bekomme ich diese Formel jetzt gültig wenn ich die 1904 Datumswerte aktiviert habe?
Henri

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ostern und 1094
15.11.2004 12:30:44
Holger
sieh mal nach unter Services und dort in Recherche. Da gibt es zig Beiträge zum Stichwort Ostern.
Holger
AW: Ostern und 1094
15.11.2004 12:46:37
Henri
Hallo Holger,
das habe ich getan, und zwar alle Fundstellen durchgeforstet. Leider konnte ich nichts finden. Immer hat jemand irgenwen auf irgendwelche Seiten verwiesen, auf denen die Lösung auch nicht zu finden war, oder das Thema bezog sich auf Ostern mit oder ohne VBA und diese Formeln habe ich doch. Diese funktionieren jedoch nicht mit aktivierten 1904 Datumswerten.
Henri
AW: Ostern und 1094
15.11.2004 15:01:37
Holger
Hallo Henri,
auch von mir eine Lösung (vorletzte Zeile hinzugefügt)

Function Ostern(Jahr As Integer) As Date
Dim A%, B%, C%, D%, E%, M%, N%, P%
A = Jahr Mod 19
B = Jahr Mod 4
C = Jahr Mod 7
M = 24
N = 5
D = (19 * A + M) Mod 30
E = (2 * B + 4 * C + 6 * D + N) Mod 7
P = 22 + D + E
If P > 31 Then
If P = 56 And D = 28 And A > 10 Then
Ostern = DateSerial(Jahr, 4, 18)
ElseIf P = 57 Then
Ostern = DateSerial(Jahr, 4, 19)
Else
Ostern = DateSerial(Jahr, 4, P - 31)
End If
Else
Ostern = DateSerial(Jahr, 3, P)
End If
If ActiveWorkbook.Date1904 = True Then Ostern = Ostern - 1462
End Function

Holger
Anzeige
AW: Ostern und 1094
Udo
Das ist VBA-Code, keine Formel, siehe www.excelformeln.de
Udo
kleine Kritik
15.11.2004 13:29:21
Henri
Hallo Udo,
es tut mir wirklich leid wenn du von den vielen Dau- und Ich-bin-zu-faul-zum-Suchen-Fragen genervt bist.
Vielleicht passiert es dir auch manchmal, dass du vor dem Fenster "neuer Beitrag" oder "Antworten" sitzt und dir überlegst, wie du dich jetzt ausdrückst. Mir geht es jedenfalls so. Ich habe mich vertippt, sorry. Passiert halt mal. Ich kenne den Unterschied zwischen einer Formel und VBA Code. Ich habe vermutlich Funktion damit gemeint.
Aber das ist doch nun wirklich nicht das Thema.
Das was mir an deiner Antwort etwas sauer aufstößt ist der Ton.
Ich schreibe immer als ersten Satz eine Begrüßung wie "Hallo Udo". Das lockert ein wenig auf und zeigt meinem Gegenüber eine gewisse Gesprächsbereitschaft an.
Leider konnte ich in deinem Satz nur eine Art Oberlehrermentalität feststellen, die wie ich finde in den seltensten Fällen angebracht erscheint.
Bitte nimm es mir nicht krumm, aber an meiner Stelle würdest du sicherlich auch so reagieren.
Grüße
Henri

Anzeige
AW: kleine Kritik
Udo
Ich bin hier nicht, um zu chatten.
Udo
OK soweit
15.11.2004 13:49:58
Henri
aber auf meine Frage hast du nicht Zufällig eine Antwort?
Gruß
Henri
AW: Ostern und 1094
EtoPHG
Hallo Henri,
Versuch's mal damit:
Public

Function Ostern(Jahr As Integer) As Date
Dim A%, B%, C%, D%, E%, M%, N%, P%, K%
A = Jahr Mod 19
B = Jahr Mod 4
C = Jahr Mod 7
M = 24
N = 5
D = (19 * A + M) Mod 30
E = (2 * B + 4 * C + 6 * D + N) Mod 7
P = 22 + D + E
If ActiveWorkbook.Date1904 = True Then
Jahr = Jahr - 4
P = P - 1
End If
If P > 31 Then
If P = 56 And D = 28 And A > 10 Then
Ostern = DateSerial(Jahr, 4, 18)
ElseIf P = 57 Then
Ostern = DateSerial(Jahr, 4, 19)
Else
Ostern = DateSerial(Jahr, 4, P - 31)
End If
Else
Ostern = DateSerial(Jahr, 3, P)
End If
End Function

Gruss Hansueli
Anzeige
AW: Ostern und 1094
15.11.2004 14:40:28
Henri
Hallo Hansueli,
danke sehr, funktioniert.
Grüße
Henri
AW: Ostern und 1094
Hübi
Hi Henri,
ich habe deine Oster-Funktion mal umgestrickt, so dass sie mit 1904-Datumswerten funktioniert

Function Ostern1904(Jahr As Integer) As Date
Dim A%, B%, C%, D%, E%, M%, N%, P%
A = Jahr Mod 19
B = Jahr Mod 4
C = Jahr Mod 7
M = 24
N = 5
D = (19 * A + M) Mod 30
E = (2 * B + 4 * C + 6 * D + N) Mod 7
P = 22 + D + E
If P > 31 Then
If P = 56 And D = 28 And A > 10 Then
Ostern1904 = DateSerial(Jahr - 4, 4, 17)
ElseIf P = 57 Then
Ostern1904 = DateSerial(Jahr - 4, 4, 18)
Else
Ostern1904 = DateSerial(Jahr - 4, 4, P - 32)
End If
Else
Ostern1904 = DateSerial(Jahr - 4, 3, P - 1)
End If
End Function

Habe diese "neue" für ein paar Jahre getestet - Ergebnisse stimmen.
Gruß Hübi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige