Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1656to1660
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

Optionale Rückgabewert bei Funktionen

Optionale Rückgabewert bei Funktionen
26.11.2018 11:44:06
Markus
Hallo an alle
Ich hab eine Funktion aus dem Netz die Feiertage ausgibt und ich würde sie gerne so anpassen das sie Optional entweder den Feiertag als Text zurück gibt oder einen Wahrheitswert ob es ein Feiertag ist (um ihn in einer bedingten Formatierung nutzen zu könne).
Ich probiere schon seit Tagen und es klappt nicht, könntet ihr mir da vielleicht weiterhelfen.
  • 
    Public Function Feiertag(Datum As Date) As String
    Dim Jahr As Integer
    Jahr = Year(Datum)
    If (Jahr > 1904) And (Jahr 
    Public Function OsterSonntag(Jahr As Long) As Date
    Dim A As Long, K As Long, M As Long, D As Long, S As Long
    Dim R As Long, OG As Long, SZ As Long, OE As Long, OS As Long
    '' 1. die Säkularzahl
    K = Jahr \ 100
    '' 2. die säkulare Mondschaltung
    M = 15 + (3 * K + 3) \ 4 - (8 * K + 13) \ 25
    '' 3. die säkulare Sonnenschaltung
    S = 2 - (3 * K + 3) \ 4
    '' 4. den Mondparameter
    A = Jahr Mod 19
    '' 5. den Keim für den ersten Vollmond im Frühling
    D = (19 * A + M) Mod 30
    '' 6. die kalendarische Korrekturgröße
    R = D \ 29 + (D \ 28 - D \ 29) * (A \ 11)
    '' 7. die Ostergrenze
    OG = 21 + D - R
    '' 8. den ersten Sonntag im März
    SZ = 7 - (Jahr + Jahr \ 4 + S) Mod 7
    '' 9. die Entfernung des Ostersonntags von der Ostergrenze (Osterentfernung In Tagen)
    OE = 7 - (OG - SZ) Mod 7
    ''10. das Datum des Ostersonntags als Märzdatum (32. März = 1. April usw.)
    OS = OG + OE
    OsterSonntag = DateSerial(Jahr, 3, OS)
    End Function
    

  • Beste Grüße
    Markus

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

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Optionale Rückgabewert bei Funktionen
    26.11.2018 13:05:59
    Daniel
    HI
    beispielsweise so:
    hier kannst du als 2. Parameter mit WAHR angeben, dass du die Feiertage als Text haben willst und mit FALSCH, dass du die Angabe Wahrheitswert haben willst.
    Lässt du den zweiten Parameter weg, wird wie bisher der Feiertag als Text ausgegeben.
    Public Function Feiertag(Datum As Date, Optional alsText As Boolean = True) As Variant
    Dim Jahr As Integer
    Jahr = Year(Datum)
    If (Jahr > 1904) And (Jahr 
    allerdings kannst du die Funktion auch so lassen wie sie ist und in der Bedigten Formatierung einfach die Länge des ausgegebenen Textes prüfen:
    bei normalen Tagen ist die 2 ("Mo", "Di", usw) und bei Feiertagen deutlich länger:
    
    =Länge(Feiertag(...))>2
    
    Gruß Daniel
    Anzeige
    AW: Optionale Rückgabewert bei Funktionen
    27.11.2018 20:25:20
    Markus
    Hallo
    Vielen Dank, das Makro funktioniert vielen Dank für ändern.
    Ich baue die Bedingte Formatierung bei jedem Wechsel auf das Tabellenblatt mit einem Makro neu auf da Ruckelt es etwas aber das ist ok. Ich hätte jetzt allerdings das Problem, das die Datei beim Scrollen ruckelt. Also es schaut so aus als ob die Bedingten Formatierungen nicht hinterherkommen. Habe ich beim Umsetzen was falsch gemacht oder woran könnte es liegen.
    Ich hab 6 bedingte Formatierungen gesetzt die für den Feiertag mit =Feiertag(AB$6;0)für den Bereich =$AB$6:$VK$200
    Ich stell die Datei mal über nen Link rein weil sie zu groß ist. Vielleicht hat jemand eine Idee oder Verbesserungsvorschlag. Es soll ein Urlaubsplaner sein für max 200 Personen.
    Die Datei: https://drive.google.com/file/d/1BYlbBel2a-TPd17PMaTPp186lOjUeP8y/view?usp=sharing
    Grüße Markus
    Anzeige
    AW: Optionale Rückgabewert bei Funktionen
    26.11.2018 13:12:16
    Werni
    Hallo Markus
    Den Bereich Datum markieren
    Bedingtes Format -> Formel ist
    =UND(B3"";ZÄHLENWENN(Feiertag;B3))
    

    Hier ist das erste Datum in Zelle B3
    Gruss Werni

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige