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

If Schaltjahr Then

Forumthread: If Schaltjahr Then

If Schaltjahr Then
27.01.2009 17:34:33
markus
Guten Abend,
da tut sich doch noch ein Problem auf und zwar das Schaltjahr,
wie kann ich das in mein Makro einbinden in Zelle Vorgaben!C2 steht das Jahr und nur im Schaltjahr möchte ich diesen Befehl ausführen: .Range("A16") = sh.Range("B5")
Funktion habe ich folgende gefunden:
Function Schaltjahr(Jahreszahl) As Boolean If (Jahreszahl Mod 4) = 0 And (Jahreszahl Mod 100) 0 Or _ ((Jahreszahl Mod 400) = 0) Then Schaltjahr = True Else Schaltjahr = False End If End Function


Danke für eure Hilfe!

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: If Schaltjahr Then
27.01.2009 18:13:46
Uwe
Hi,
versuch es mal so:

Dim Jahreszahl As Integer
Jahreszahl = Sheets("Vorgaben").Range("C2").Value
If (Jahreszahl Mod 4) = 0 And (Jahreszahl Mod 100)  0 Or _
((Jahreszahl Mod 400) = 0) Then _
.Range("A16") = sh.Range("B5")


Gruß
Uwe
(:o)

Anzeige
das geht mE auch mit Formeln
27.01.2009 18:22:48
Matthias
Hallo marcus
in C2 steht z.B 2009
in C3 diese Formel:

=WENN(MONAT(DATUM(C2;2;29))=2;"Schaltjahr";"kein Schaltjahr")


den 01.03.2009 zurückgibt, könnte das so klappen
Userbild
nun könntest Du wiederum mit einer Formel prüfen ob "Schaltjahr" in der Zelle steht
und mit einer Wenn-Formel die Daten in der entsprechenden Zelle zurückgeben.
Gruß Matthias

Anzeige
AW: Schaltjahr Formel und VBA
27.01.2009 19:51:02
Erich
Hi,
per Formel auch so:
 ABC
12008WAHRWAHR
22009FALSCHFALSCH

Formeln der Tabelle
ZelleFormel
B1=TAG(("1.3."&A1)-1)=29
C1=TAG(DATUM(A1;3;0))=29


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
und in VBA:

Public Function SchaltJ(datD As Date) As Boolean      ' aus Datum
SchaltJ = Day(DateSerial(Year(datD), 3, 0)) = 29
End Function
Public Function JSchaltJ(intJ As Integer) As Boolean  ' aus Jahr
JSchaltJ = Day(DateSerial(intJ, 3, 0)) = 29
End Function

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: If Schaltjahr Then
27.01.2009 20:18:00
Gerd
Hallo Markus,
so.
If Schaltjahr(Worksheets("Vorgaben").Cells(2,3).Value)= True then
.............................................................
End If
Gruß Gerd
AW: If Schaltjahr Then
27.01.2009 21:00:00
markus
Danke, Danke,
habe mich für Uwe's Vorschlag entschieden - funktioniert 1a.
Gruß Markus
;
Anzeige

Infobox / Tutorial

Schaltjahr in Excel mit VBA und Formeln erkennen


Schritt-für-Schritt-Anleitung

Um ein Schaltjahr in Excel zu ermitteln und damit in VBA zu arbeiten, kannst du folgende Schritte befolgen:

  1. VBA-Funktion erstellen: Öffne den VBA-Editor (ALT + F11) und füge ein neues Modul hinzu. Schreibe die folgende Funktion:

    Function Schaltjahr(Jahreszahl As Integer) As Boolean
       If (Jahreszahl Mod 4) = 0 And (Jahreszahl Mod 100) <> 0 Or (Jahreszahl Mod 400) = 0 Then
           Schaltjahr = True
       Else
           Schaltjahr = False
       End If
    End Function
  2. Jahr aus Zelle auslesen: In deinem Makro kannst du das Jahr aus einer bestimmten Zelle, z.B. Vorgaben!C2, auslesen:

    Dim Jahreszahl As Integer
    Jahreszahl = Sheets("Vorgaben").Range("C2").Value
  3. Schaltjahr überprüfen und Befehl ausführen: Füge eine Bedingung hinzu, um zu überprüfen, ob das Jahr ein Schaltjahr ist:

    If Schaltjahr(Jahreszahl) Then
       .Range("A16") = sh.Range("B5")
    End If

Häufige Fehler und Lösungen

  • Fehler: "Typenkonflikt"
    Lösung: Stelle sicher, dass die Zelle, aus der das Jahr gelesen wird, tatsächlich eine Zahl enthält.

  • Fehler: Kein Ergebnis in A16
    Lösung: Überprüfe, ob die Funktion Schaltjahr korrekt implementiert ist und ob der Wert in Vorgaben!C2 ein Schaltjahr ist.


Alternative Methoden

Es gibt verschiedene Möglichkeiten, ein Schaltjahr in Excel zu berechnen, auch ohne VBA:

  1. Excel-Formel nutzen: In einer Zelle kannst du folgende Formel verwenden, um zu erkennen, ob es sich um ein Schaltjahr handelt:

    =WENN(MONAT(DATUM(C2;2;29))=2;"Schaltjahr";"kein Schaltjahr")
  2. Direkte Berechnung: Du kannst auch eine einfache Formel zur Berechnung in einer Excel-Tabelle verwenden:

    =TAG(DATUM(A1;3;0))=29

Hierbei ist A1 die Zelle, die das Jahr enthält.


Praktische Beispiele

  • Beispiel 1: Überprüfung eines Schaltjahres
    Wenn in Vorgaben!C2 das Jahr 2009 steht, wird die Formel in C3 "kein Schaltjahr" zurückgeben.

  • Beispiel 2: VBA-Anwendung
    Verwende die oben genannte VBA-Funktion, um in einer Schleife über eine Liste von Jahren zu iterieren und zu überprüfen, welche Schaltjahre sind.


Tipps für Profis

  • Verwendung von DateSerial in VBA:
    Du kannst die Funktion DateSerial verwenden, um direkt zu überprüfen, ob ein Jahr ein Schaltjahr ist:

    Public Function SchaltJ(intJ As Integer) As Boolean
       SchaltJ = Day(DateSerial(intJ, 3, 0)) = 29
    End Function
  • Fehlerbehandlung implementieren:
    Füge Fehlerbehandlungen in dein Makro ein, um sicherzustellen, dass auch ungültige Eingaben korrekt behandelt werden.


FAQ: Häufige Fragen

1. Wie erkenne ich ein Schaltjahr in Excel?
Du kannst die oben genannten Excel-Formeln oder die VBA-Funktion Schaltjahr verwenden, um dies zu überprüfen.

2. Was ist ein Schaltjahr?
Ein Schaltjahr hat 366 Tage anstatt 365 und tritt alle vier Jahre auf, mit einigen Ausnahmen, die durch die oben genannte Logik erklärt werden.

3. Welche Excel-Version benötige ich für diese Funktionen?
Die beschriebenen Funktionen und Formeln sind in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010 und neuer.

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