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

Monatsliste, Sonntage und Feiertage löschen

Monatsliste, Sonntage und Feiertage löschen
24.10.2005 21:50:53
Wolfram
Hallo aus Österreich and die Excel-Wissenden!
Ich habe da ein Problemchen, mit dem ich anstehe, aber die Profis hier vielleicht lösen können.
Hier mal der Beginn der geplanten Excel-Datei:
https://www.herber.de/bbs/user/27788.xls
Oben stehen in einigen Spalten z.B. Artikel bei denen dann die Summen eingetragen werden, was halt am Tag eingenommen wurde laut Registrierkasse.
In der ersten Spalte soll der Wochentag und das Datum stehen (könnte auch auf z.B. MO, 01.01. abgekürzt werden). Dann gibt es eben noch 12 Monatsblätter.
Der Wunsch dabei:
Z.B. über einen Button oder Aufruf sollte man das Jahr eingeben, dann wird auf jedem Arbeitsblatt der Wochentag und das Datum eben für das gewünschte Jahr eingetragen. ALLERDINGS: es soll dann jede Zeile mit Sonntag gelöscht werden!
Die Über-Drüber-Funktion wäre noch, wenn auch Feiertage gelöscht werden würden.
Irgendeine Idee von Euch, wie man das realisieren könnte?
Vielen Dank schon mal im voraus für Eure Hilfe und Mühe!
Herzliche Grüße,
Wolfram

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

Betreff
Datum
Anwender
Anzeige
AW: Monatsliste, Sonntage und Feiertage löschen
25.10.2005 16:17:03
UweD
Hallo
hab was gebastelt (Neu) und 2 Funktionen (Feiertage und Osterformel) aus unbekannter Quelle übernommen
seih dir das mal an.

Sub Neu()
Dim Anz%, Sp%, Z%, Jahr%, I%, Letzter%, J%, Datum As Date, TB, Test$
Anz = 12
Sp = 1 ' Spalte für Datum
Jahr = InputBox("Welches Jahr", "Eingaben Jahreszahl", Year(Date) + 1)
If (Jahr > 1904) And (Jahr < 2100) Then
For I = 1 To Anz
Set TB = Sheets(Format(I, "00"))
Z = 2
TB.Cells.Clear 'löscht die Inhalte vom Blatt
Letzter = Day(DateSerial(Jahr, I + 1, 0)) 'Letzter Tag des Monats
For J = 1 To Letzter
Datum = DateSerial(Jahr, I, J)
If Weekday(Datum, vbMonday) <= 5 Then
Test = FeierTag(Datum)
If Test = "" Then
TB.Cells(Z, Sp).Value = Format(Datum, "DDDD DD. MMMM YYYY")
Z = Z + 1
End If
End If
Next J
TB.Cells(Z + 2, Sp).Value = "Gesamtsumme"
Next
Else
MsgBox "Fehlerhafte Eingabe"
Exit Sub
End If
End Sub

Public

Function FeierTag(Datum As Date) As String
Dim Jahr As Integer
Jahr = Year(Datum)
If (Jahr > 1904) And (Jahr < 2100) Then
Select Case Format$(Datum, "dd.mm")
' Gesetzliche Feiertage
Case "01.01": FeierTag = "Neujahr"
Case "06.01": FeierTag = "Heilige Drei Könige"
Case "01.05": FeierTag = "Tag der Arbeit"
Case "15.08":  FeierTag = "Mariä Himmelfahrt"
Case "03.10": FeierTag = "Tag der Deutschen Einheit"
Case "31.10": FeierTag = "Reformationstag"
Case "01.11": FeierTag = "Allerheiligen"
Case "24.12": FeierTag = "Heiligabend"
Case "25.12": FeierTag = "1. Weihnachtsfeiertag"
Case "26.12": FeierTag = "2. Weihnachtsfeiertag"
Case "31.12": FeierTag = "Sylvester"
Case Else
' Bewegliche Feste:
Select Case Datum - OsterSonntag(Datum)
Case -52: FeierTag = "Weiberfastnacht"
Case -48: FeierTag = "Rosenmontag"
Case -2:  FeierTag = "Karfreitag"
Case 0:  FeierTag = "Ostersonntag"
Case 1:  FeierTag = "Ostermontag"
Case 39:  FeierTag = "Christi Himmelfahrt"
Case 49:  FeierTag = "Pfingstsonntag"
Case 50:  FeierTag = "Pfingstmontag"
Case 60:  FeierTag = "Fronleichnam"
Case Else
If Datum = CDate("25.12." & Jahr) - Weekday("25.12." & Jahr, _
vbMonday) - 32 Then
FeierTag = "Buß- und Bettag"
Else
FeierTag = vbNullString  ' Kein Feiertag
End If
End Select
End Select
Else: FeierTag = vbNullString
End If
End Function

Public

Function OsterSonntag(Datum As Date) As Date
Dim A As Integer, D As Integer, E As Integer, Jahr As Integer
Jahr = Year(Datum)
If (1904 < Jahr) And (Jahr < 2100) Then  ' Datum zulässig ?
A = Jahr Mod 19
D = (19 * A + 24) Mod 30
E = (2 * (Jahr Mod 4) + 4 * (Jahr Mod 7) + 6 * D + 5) Mod 7
OsterSonntag = CDate(DateSerial(Jahr, 3, 22 + D + E))
If Month(OsterSonntag) = 4 Then
If Day(OsterSonntag) = 26 Or (Day(OsterSonntag) = 25 And E = 6 And A > 10) Then
OsterSonntag = OsterSonntag - 7
End If
End If
End If
End Function

Gruß UweD
(Rückmeldung wäre schön)
Anzeige
AW: Monatsliste, Sonntage und Feiertage löschen
25.10.2005 22:09:54
Wolfram
Hallo Uwe!
Hey, das schaut so vom drübersehen prima aus - viel Denkarbeit nehme ich mal an!
Vielen Dank einstweilen!
Könntest Du bitte noch einem VBA-Unwissenden helfen, wo ich das Zeug einfügen muß?
Ich werde aber mal selbst versuchen und melde mich noch in jedem Fall.
Herzliche Grüße,
Wolfram
AW: Monatsliste, Sonntage und Feiertage löschen -
25.10.2005 22:29:53
Wolfram
Hallo Uwe!
Okay, ich Dummi hab´s herausbekommen! Baue mir jetzt noch eine Schaltfläche ein und mein Chef sollte happy sein. Hab die Sache nur noch erweitert, dass auch noch der Samstag drinnen bleibt.
VIELEN DANK für die rasche Hilfe! Bin total begeistert!
Herzliche Grüße,
Wolfram
Anzeige
Fast perfekt - noch eine Frage
25.10.2005 22:39:39
Wolfram
Hallo Uwe!
Einmal muß ich noch nerven. So ist das ganze Script schon prima, allerdings wird mir
die erste Zeile überall gelöscht, wo allerdings die Überschrift über den Spalten stehen sollte: 1 2 3 4 5 ...
Und dann noch: Super wäre es, wenn gleich in der Zeile "Gesamtsumme" in jeder Spalte die Summenformel für diese Spalte drinnenstehen würde. Damit müßte man die Arbeitsblätter nicht mehr bearbeiten.
Vielen Dank nochmals für Deine Hilfe!
Herzliche Grüße,
Wolfram
Schon erledigt
25.10.2005 23:44:46
Wolfram
Hallo,
okay, jetzt habe ich ein wenig herumgestrickt. Ich lasse jetzt in dem Script nur einen bestimmten Bereich löschen, wo die Daten reinkommen. Damit kann ich die Überschrift fixieren und die Gesamtsumme habe ich in Zeile 31 eingetragen und da die Spaltensummen gebildet.
Haut ganz prima hin, außer dass halt der Abstand mit Leerzeilen etwas größer ist, wenn der Monat weniger Tage hat. Macht aber nichts.
Nochmals vielen Dank!
Herzliche Grüße,
Wolfram
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige