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

Start von Makro und Funktion

Start von Makro und Funktion
01.10.2003 08:59:18
Werner Busch
Guten Morgen,

ich möchte, dass mein Jahreskalender mit 12 Monatsblättern im aktuellen Monat startet. Außerdem sollen die Feiertage (Tag in Spalte A, Wochentag in Spalte B)berechnet und farbig unterlegt werden. Bei den Feiertagen soll eine Meldung erfolgen, um welchen Feiertag es sich handelt. Dies wollte ich mit folgendem Makro realsieren, leider läuft es nicht. Woran hängt es? Danke im Voraus!


Private Sub Workbook_Open()
Worksheets(Month(Date)).Activate
End Sub


Function Ostern(Yr As Integer)
Dim D As Integer
D = (((255 - 11 * (Yr Mod 19)) - 21) Mod 30) + 21
Ostern = DateSerial(Yr, 3, 1) + D + (D > 48) + 6 - ((Yr + Yr \ 4 + D + (D > 48) + 1) Mod 7)
End Function


Function Feiertagsberechnung()
Dim sOstern As Date
Dim sNeujahr As Date
Dim sOstermontag As Date
Dim sKarfreitag As Date
Dim sFastnacht As Date
Dim sRosenmontag As Date
Dim sMaifeiertag As Date
Dim sPfingstsonntag As Date
Dim sPfingstmontag As Date
Dim sFronleichnam As Date
Dim sChristiHimmelfahrt As Date
Dim sTagderDeutschenEinheit As Date
Dim sHeiligabend As Date
Dim sWeihnachstag1 As Date
Dim sWeihnachtstag2 As Date
Dim sSylvester As Date
Dim sEintrag As String

sOstern = Ostern(Year(Date))
sOstermontag = DateSerial(Year(sOstern), Month(sOstern), Day(sOstern) + 1)
sNeujahr = "01.01." & Year(Date)
sKarfreitag = DateSerial(Year(sOstern), Month(sOstern), Day(sOstern) - 2)
sFastnacht = DateSerial(Year(sOstern), Month(sOstern), Day(sOstern) - 47)
sRosenmontag = DateSerial(Year(sOstern), Month(sOstern), Day(sOstern) - 48)
sMaifeiertag = "01.05." & Year(Date)
sPfingstsonntag = DateSerial(Year(sOstern), Month(sOstern), Day(sOstern) + 49)
sPfingstmontag = DateSerial(Year(sOstern), Month(sOstern), Day(sOstern) + 50)
sFronleichnam = DateSerial(Year(sOstern), Month(sOstern), Day(sOstern) + 60)
sChristiHimmelfahrt = DateSerial(Year(sOstern), Month(sOstern), Day(sOstern) + 39)
sTagderDeutschenEinheit = "03.10." & Year(Date)
sHeiligabend = "24.12." & Year(Date)
sWeihnachtstag2 = "26.12." & Year(Date)
sWeihnachstag1 = "25.12." & Year(Date)
sSylvester = "31.12." & Year(Date)

Select Case Str(Date)
Case sNeujahr
sEintrag = "Neujahr"

Case sOstern
sEintrag = "Ostersonntag"

Case sOstermontag
sEintrag = "Ostermontag"

Case sKarfreitag
sEintrag = "Karfreitag"

Case sFastnacht
sEintrag = "Fastnacht"

Case sRosenmontag
sEintrag = "Rosenmontag"

Case sMaifeiertag
sEintrag = "Maifeiertag"

Case sChristiHimmelfahrt
sEintrag = "Christi Himmelfahrt"

Case sPfingstsonntag
sEintrag = "Pfingstsonntag"

Case sPfingstmontag
sEintrag = "Pfingstmontag"

Case sFronleichnam
sEintrag = "Fronleichnam"

Case sTagderDeutschenEinheit
sEintrag = "der Tag der dt. Einheit"

Case sHeiligabend
sEintrag = "Heiligabend"

Case sWeihnachstag1
sEintrag = "der 1. Weihnachtstag"

Case sWeihnachtstag2
sEintrag = "der 2. Weihnachtstag"

Case sSylvester
sEintrag = "Silvester"

Case Else
sEintrag = ""

End Select

If sEintrag <> "" Then
MsgBox "Heute ist " + sEintrag + ". Bitte Eintragungen prüfen!", vbInformation

End If
End Function

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Start von Makro und Funktion
01.10.2003 09:12:14
Hans W. Hofmann
Läuft nicht, ist natürlich eine sehr brauchbare Fehlerbeschreibung, wenn man eine Glaskugel besitzt. Aber wer hat sowas heute noch?

Gruß HW
AW: Start von Makro und Funktion
01.10.2003 09:24:49
Werner Busch
Hallo,
"läuft nicht" bedeutet im Detail, dass die Mappe zwar im aktuellen Monat startet, die Meldung über den entsprechenden Feiertag jedoch unterbleibt. Ist die Einbindung der beiden Funktionen überhaupt so richtig? Wie erreiche ich, dass nach der Feiertagsberechnung diese farbig unterlegt werden?

Gruß
Werner
AW: Start von Makro und Funktion
01.10.2003 10:56:32
Hans W. Hofmann
Halten wir uns mal an den vorgestellten Code:
So wie ich das sehe nimmt Deine(?) Funktion das Systemdatum und überprüft es auf die vorgegebenen Feiertage und meldet einen Treffer mittels MsxBox.
Wie muss man sich das vorstellen, wenn
> die Mappe zwar im aktuellen Monat startet?
Welcher einer wäre
> den entsprechenden Feiertag?
Und was bitte soll
> farbig unterlegt werden?
Fragen über Fragen...

Gruß HW
Anzeige
AW: Start von Makro und Funktion
01.10.2003 11:14:55
Werner Busch
Die Mappe besteht, wie gesagt, aus 12 Monatsblättern, die mit "Jan, Feb,..." bezeichnet sind. Beim Öffnen der Mappe startet sie genau im aktuellen Monat, heute also auf dem Tabellenblatt "Okt". Das klappt!
Aus der Berechnung der Feiertage vom Ostertermin aus, diese sind im Code näher bezeichnet, soll die msgbox den jeweiligen Text "Heute ist ..." ausgeben.
Als Zusatz, und das ist nicht im Makro enthalten, suche ich einen Weg, wie ich das Makro ergänzen muss, um die dort angegebenen Feiertage im ganzen Jahr, also in den jeweiligen Tabellenblättern "Jan, Feb,...) zu markieren. Wie ich schon schrieb, sind das Tagesdatum in Spalte A und der Wochentag in Spalte B.

Gruß
Werner
Anzeige
AW: noch offen
01.10.2003 12:19:48
Hans W. Hofmann
Ach ja, Excel gut - VBA nein
Von wem ist dann der Code? Allenfalls nicht von Dir!
Ich empfinde es als granatenmäßig schlechten Stil, wenn man fremden Code publiziert, ohne den Autor zu zitieren :-( das kann doch wenigstens verlangen, oder?
Unter den Umständen sehe ich auch keine Chance Dir weiterzuhelfen...
Wie willst Du denn einen Lösungsvorschlag umsetzen, wenn Du keine Ahnung von VBA hast?

Gruß HW
AW: noch offen
01.10.2003 12:28:10
Werner Busch
Danke, auch wenn Du mir nicht helfen willst (kannst?).

Die Oster-Funtion wurde mir von einem Kollegen zur Verfügung gestellt. Seine Quelle kenne ich nicht. Ich habe diese Anfrage mit seinem Einverständnis gestellt. Mir ist die Zeit zu wertvoll, um mich mit Dir über Etikette zu unterhalten.

Ich wünsche einen schönen Tag.

wb
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige