Start von Makro und Funktion

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Start von Makro und Funktion
von: Werner Busch
Geschrieben am: 01.10.2003 08:59:18

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

Bild


Betrifft: AW: Start von Makro und Funktion
von: Hans W. Hofmann
Geschrieben am: 01.10.2003 09:12:14

Läuft nicht, ist natürlich eine sehr brauchbare Fehlerbeschreibung, wenn man eine Glaskugel besitzt. Aber wer hat sowas heute noch?


Gruß HW


Bild


Betrifft: AW: Start von Makro und Funktion
von: Werner Busch
Geschrieben am: 01.10.2003 09:24:49

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


Bild


Betrifft: AW: Start von Makro und Funktion
von: Hans W. Hofmann
Geschrieben am: 01.10.2003 10:56:32

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


Bild


Betrifft: AW: Start von Makro und Funktion
von: Werner Busch
Geschrieben am: 01.10.2003 11:14:55

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


Bild


Betrifft: AW: noch offen
von: Hans W. Hofmann
Geschrieben am: 01.10.2003 12:19:48

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


Bild


Betrifft: AW: noch offen
von: Werner Busch
Geschrieben am: 01.10.2003 12:28:10

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


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Start von Makro und Funktion"