Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
784to788
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
784to788
784to788
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Schaltjahr/29.Februar - als If oder case ??

Schaltjahr/29.Februar - als If oder case ?
24.07.2006 15:41:18
HorstH
Hallo Leute im Forum,
versuchte am Wochenende vergeblich, den 29. Februar in ein script einzubinden. Frage: Range(cells(4,3), cells(369, 3)) wird Datumsreihe 01.01.+Year bis 31.12.+Year ausgefüllt. Nun muss ja ab und zu der 29. Februar da hinein. Wie handhabt man dies am besten? In den Spalten 5 bis 19 kommt eine Matrizenformel, Spalte 20+21 sind Summen. Bei einer Leerzeile für den 29.FEbruar mlüßten dann entweder die Matrizenformeln (also ganze Zeile) Formelfrei werden. Oder es wird bei Zutreffen für 29.02. nachträglich eine Zeile eingefügt. Ist dies am besten über eine If Abfrage (Frage also, wie ermittle ich das Datum) oder über ein select case (auch hier die Frage, wie ermittle ich das Kriterium)? Wer kann mir hier behilflich sein?
LG Horst

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schaltjahr/29.Februar - als If oder case ?
24.07.2006 15:58:35
Peter
Hallo Horst,
in B1 steht eine Jahreszahl, dann lass mal das beigefügte Makro laufen, vielleicht hilft dir das:

Function IstSchaltjahr(Jahr As Long) As Boolean
If (Jahr Mod 4 = 0 And Jahr Mod 100 <> 0) Or _
(Jahr Mod 400 = 0) Then IstSchaltjahr = True
End Function

Public

Sub Spalte_C()
Dim dDatum  As Date
Dim iEnde   As Integer
Dim lZeile  As Long
dDatum = "01.01." & Range("B1").Value
If IstSchaltjahr(Range("B1").Value) = True Then
iEnde = 366 + 3
Else
iEnde = 365 + 3
End If
Range("C4:C369").ClearContents
For lZeile = 4 To iEnde
Range("C" & lZeile).Value = dDatum
dDatum = dDatum + 1
Next lZeile
End Sub

Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
AW: Schaltjahr/29.Februar - als If oder case ?
24.07.2006 16:35:06
HorstH
Hallo Peter,
100%ig!! Danke! Habe vergeblich probiert, eine For-Schleife in die If-Abfrage zu packen. Aber so ist das ja viel eleganter (und mit der Function) und läuft! Prima - da kann ich ja evtl. noch meine Matrizen mit einbauen in die For-Schleife.
Gruß
Horst

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige