Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1876to1880
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

Wie Modul zum Laufen bringen

Wie Modul zum Laufen bringen
28.03.2022 13:53:13
mike49
Hallo Leute,
zur Berechnung des Muttertages unter Berücksichtigung des Pfingstsonntages habe ich gestern dieses Makro gefunden:

Public Function Muttertag(Jahr As Integer) As Date
'erst Pfingstsonntag (Ostern + 49)
Dim d As Integer
d = (((255 - 11 * (Jahr Mod 19)) - 21) Mod 30) + 21
Pfingstsonntag = DateSerial(Jahr, 3, 1) + d + (d > 48) + 6 - ((Jahr + Jahr \ 4 + _
d + (d > 48) + 1) Mod 7) + 49
'dann 2. Sonntag im Mai
zweiterMaiSonntag = DateSerial(Jahr, 5, (8 - Weekday(DateSerial(Jahr, 5, 1), _
(1 + 1) Mod 8)) + ((2 - 1) * 7))
'jetzt die Ergebnisse vergleichen
If Pfingstsonntag = zweiterMaiSonntag Then
Muttertag = DateSerial(Jahr, 5, (8 - Weekday(DateSerial(Jahr, 5, 1), _
(1 + 1) Mod 8)) + ((1 - 1) * 7))
Else
Muttertag = DateSerial(Jahr, 5, (8 - Weekday(DateSerial(Jahr, 5, 1), _
(1 + 1) Mod 8)) + ((2 - 1) * 7))
End If
End Function
Ich habe den Inhalt in ein Modul mit dem Namen "Muttertag" geschrieben.
Das korrekte Datum soll nun in der Zelle Q28 angezeigt werden. Was müsste man in diese Zelle schreiben?
Gruß
mike49

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Was müsste man in diese Zelle schreiben?
28.03.2022 13:56:57
Rudi
=Muttertag(2022)
Gruß
Rudi
AW: Was müsste man in diese Zelle schreiben?
28.03.2022 14:09:16
mike49
Hallo Rudi,
danke für die schnelle Antwort.
Leider wird angezeigt: #NAME?
Das jeweilige Jahr stammt aus (gewJahr)
Ich habe in Q28 eingetragen: =Muttertag(gewJahr). Gleiches Ergebnis.
was ist gewJahr? ein Name? owT
28.03.2022 14:10:38
Rudi
AW: was ist gewJahr? ein Name? owT
28.03.2022 14:15:37
mike49
"gewJahr" ist der Name der aktuellen Jahreszahl, die im Blatt "Jahr Eigabe" eingetragen wird.
keine Ahnung, was ...
28.03.2022 14:36:04
Rudi
... du falsch machst.
Funktioniert bei mir.
Gruß
Rudi
AW: was ist gewJahr? ein Name? owT
28.03.2022 14:37:11
Sigi.21
Hallo Mike,
die Funktion funktioniert. In Zelle Q28:
" =Muttertag(Jahr) ". Das Jahr ist der Bezug zu deiner Zelle, die das Jahr (gewJahr) beinhaltet.
Gruß Sigi
AW: was ist gewJahr? ein Name? owT
28.03.2022 15:23:33
mike49
Danke Sigi.
Aber irgendwie "funkt" da noch was anderes dazwischen. Ich kann machen was ich will.
Ich wollte ja die VBA-Lösung probieren. Wie dem auch sei.
Im Moment steht in Q28 diese Formel:
=WENN(gewJahr=2035;DATUM(gewJahr;5;15-WOCHENTAG(DATUM(gewJahr;5;1);2))-7;DATUM(gewJahr;5; 15-WOCHENTAG(DATUM(gewJahr;5;1);2)))
Wenn Funktion deshalb, weil erst im Jahr 2035 Pfingstsonntag und Muttertag zusammenfallen.
Diese empfohlene Formel funktioniert bei mir - warum auch immer - leider nicht:
=DATUM(gewJahr;5;1)-WOCHENTAG(DATUM(gewJahr;5;1);2)+14-(7*(DATUM(gewJahr;5;1) -WOCHENTAG(DATUM(gewJahr;5;1);2) +14=RUNDEN((TAG(MINUTE(gewJahr/38)/2+55)&".4."&gewJahr)/7;)*7-6+49))
Gruß
mike49
Anzeige
AW: was ist gewJahr? ein Name? owT
28.03.2022 17:29:32
mike49
Hi Sigi,
jetzt klappt's!
Ich hatte einen Schreibfehler drin!
Vielen Dank nochmals für deine Hilfe.
Gruß
mike49
AW: Was müsste man in diese Zelle schreiben?
28.03.2022 17:30:36
Daniel
"Ich habe den Inhalt in ein Modul mit dem Namen "Muttertag" geschrieben."
du sollest ein Modul immer anders benennen, als die Makros oder die Funktionen, die darin enthalten sind.
Hintergrund ist folgender:
die reguläre vollständige Benennung für einen Makro- oder Funktionsaufruf ist nämlich nicht nur "Funktionname", sondern "Modulname.Funktionsname".
VBA hat die Komfortfunkion, dass es, wenn kein Modulname angegeben ist, die Bezeichnung in den Funktionen und Makros der allgemeinen Module gesucht wird.
Wenn VBA aber die Bezeichung bei den Modulen findet, dann geht es davon aus, dass auch der Modulname gemeint ist und sucht dann in diesem Modul nach dem nächsten Begriff, der hier aber fehlt.
dh wenn du Modul und Funktion gleich benennst musst du auch die Funktion mit "Muttertag.Muttertag" aufrufen.
Einfacher ist aber, Modul und Funktion unterschiedlich zu benennen, zumal es auch schnell unübersichtlich in den Modulen wird, wenn du für jede Funktion ein eigenes Modul anlegst. Dann ist es besser, über das Modul zu gruppieren und das Modul dann beispielsweise "Datumsfunktionen" zu nennen und dort alle neuen Funktionen zu hinterlegen, die mit dem Datum zu tun haben.
Gruß Daniel
Anzeige
AW: Was müsste man in diese Zelle schreiben?
28.03.2022 18:10:55
mike49
Hallo Daniel.
Danke für den Tipp!
Gruß
mike49

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige