Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
420to424
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
420to424
420to424
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wochenende / Feiertage

Wochenende / Feiertage
Erich
Hallo EXCEL-Freunde,
habe nachstehendes Makro aus dem Forum, das funktioniert.
Es werden die Wochenenden und Feiertage in den Zeilen blau markiert.
Leider gelingt es mir nicht,
die Wochenenden blau
und die Feiertage rot
zu markieren:
Option Explicit
Sub WochenendenEinfaerben()
Dim r As Range
Dim rFT As Range
Dim bolFT As Boolean
For Each r In Range("A1").CurrentRegion
If IsDate(r.Value) Then
bolFT = False
For Each rFT In Range("Feiertage")
If rFT.Value = r.Value Then
bolFT = True
Exit For
End If
Next
If Weekday(r.Value, vbMonday) > 5 Or bolFT Then
With Range(Cells(r.Row, 1), Cells(r.Row, 47))
.Interior.Color = vbBlue
.Font.Color = vbWhite
End With
End If
End If
Next r
End Sub

Besten Dank für eine Hilfe!
mfg
Erich

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Wochenende / Feiertage
Nepumuk
Hallo Erich;
wie wäre es damit:


Sub WochenendenEinfaerben()
    Dim As Range
    Dim rFT As Range
    Dim bolFT As Boolean
    For Each In Range("A1").CurrentRegion
        If IsDate(r.Value) Then
            bolFT = False
            For Each rFT In Range("Feiertage")
                If rFT.Value = r.Value Then bolFT = TrueExit For
            Next
            If Weekday(r.Value, vbMonday) > 5 Then
                With Range(Cells(r.Row, 1), Cells(r.Row, 47))
                    .Interior.Color = vbBlue
                    .Font.Color = vbWhite
                End With
            End If
            If bolFT Then
                With Range(Cells(r.Row, 1), Cells(r.Row, 47))
                    .Interior.Color = vbRed
                    .Font.Color = vbYellow
                End With
            End If
        End If
    Next r
End Sub


Gruß
Nepumuk
Anzeige
DANKE - Nepumuk; Perfekt wie immer - o.T.!!
Erich
warum funzzt dies....
th.heinrich
@all
Sub WochenendenEinfaerben() Dim r As Range Dim rFT As Range Dim bolFT As Boolean For Each r In Range("A1").CurrentRegion If IsDate(r.Value) Then bolFT = False For Each rFT In Range("Feiertage") If rFT.Value = r.Value Then bolFT = True: Exit For Next If WeekDay(r.Value, vbMonday) > 5 Then With Range(Cells(r.Row, 1), Cells(r.Row, 2)) .Interior.Color = vbBlue .Font.Color = vbWhite End With End If If bolFT Then With Range(Cells(r.Row, 1), Cells(r.Row, 2)) .Interior.Color = vbRed .Font.Color = vbYellow End With End If End If Next r End Sub
statt Cells(r.Row, 47)) Cells(r.Row, 2))
...nicht ?
gruss thomas
Anzeige
AW: warum funzzt dies....
PeterW
Hallo Thomas,
dass ich dir das mal schreiben darf ... ;-) - aus den Forums-FAQ:
"Fehlerbeschreibungen
Beschränke Dich nicht auf die lapidare Feststellung Excel meldet Fehler; gib die exakte Fehlermeldung an. Stoppt Excel einen VBA-Code, gib die exakte Zeile des Programmabbruchs an."
Was klappt denn bei dir nicht? Gibt es Fehlermeldungen? Stoppt der Code? Hast du einen benannten Bereich "Feiertage"?...
Gruß
Peter
FORUMS-FAQ....
th.heinrich
hallo Peter,
der fehler war schon beschrieben
"statt Cells(r.Row, 47)) Cells(r.Row, 2))"
gebe zu allerdings nicht sehr deutlich. die ursache habe ich inzwischen verstanden.
wenn bis spalte 47 eingefaerbt ist und ich den CODE auf Cells(r.Row, 2) aendere bleibt natuerlich bis 47 eingefaerbt.
gruss thomas
Anzeige
Eine Lösung ohne VBA
Georg
Hallo Erich
01
 AB
1vom:01.01.2004
2bis:31.01.2004
3  
4  
5Zeiterfassung 
6Tag 
701. Jan 04Donnerstag
802. Jan 04Freitag
903. Jan 04Samstag
1004. Jan 04Sonntag
1105. Jan 04Montag
1206. Jan 04Dienstag
1307. Jan 04Mittwoch
1408. Jan 04Donnerstag
1509. Jan 04Freitag
1610. Jan 04Samstag
1711. Jan 04Sonntag
Formeln der Tabelle
B2 : =MONATSENDE(B1;0)
A7 : =B1
B7 : =A7
A8 : =WENN(A7>=$B$2;"";WENN(A7=0;;A7+1))
B8 : =A8
A9 : =WENN(A8>=$B$2;"";WENN(A8=0;;A8+1))
B9 : =A9
A10 : =WENN(A9>=$B$2;"";WENN(A9=0;;A9+1))
B10 : =A10
A11 : =WENN(A10>=$B$2;"";WENN(A10=0;;A10+1))
B11 : =A11
A12 : =WENN(A11>=$B$2;"";WENN(A11=0;;A11+1))
B12 : =A12
A13 : =WENN(A12>=$B$2;"";WENN(A12=0;;A12+1))
B13 : =A13
A14 : =WENN(A13>=$B$2;"";WENN(A13=0;;A13+1))
B14 : =A14
A15 : =WENN(A14>=$B$2;"";WENN(A14=0;;A14+1))
B15 : =A15
A16 : =WENN(A15>=$B$2;"";WENN(A15=0;;A15+1))
B16 : =A16
A17 : =WENN(A16>=$B$2;"";WENN(A16=0;;A16+1))
B17 : =A17
Bedingte Formatierungen der Tabelle
ZelleNr.: / BedingungFormat
A71. / Formel ist =WOCHENTAG($B7;2)>5Abc
A72. / Formel ist =$A7=""Abc
B71. / Formel ist =WOCHENTAG($B7;2)>5Abc
B72. / Formel ist =$A7=""Abc
B73. / Formel ist =ISTFEHLER(SVERWEIS(B7;Feiertage;2;0))=FALSCHAbc
A81. / Formel ist =WOCHENTAG($B8;2)>5Abc
A82. / Formel ist =$A8=""Abc
B81. / Formel ist =WOCHENTAG($B8;2)>5Abc
B82. / Formel ist =$A8=""Abc
B83. / Formel ist =ISTFEHLER(SVERWEIS(B8;Feiertage;2;0))=FALSCHAbc
A91. / Formel ist =WOCHENTAG($B9;2)>5Abc
A92. / Formel ist =$A9=""Abc
B91. / Formel ist =WOCHENTAG($B9;2)>5Abc
B92. / Formel ist =$A9=""Abc
B93. / Formel ist =ISTFEHLER(SVERWEIS(B9;Feiertage;2;0))=FALSCHAbc
A101. / Formel ist =WOCHENTAG($B10;2)>5Abc
A102. / Formel ist =$A10=""Abc
B101. / Formel ist =WOCHENTAG($B10;2)>5Abc
B102. / Formel ist =$A10=""Abc
B103. / Formel ist =ISTFEHLER(SVERWEIS(B10;Feiertage;2;0))=FALSCHAbc
A111. / Formel ist =WOCHENTAG($B11;2)>5Abc
A112. / Formel ist =$A11=""Abc
B111. / Formel ist =WOCHENTAG($B11;2)>5Abc
B112. / Formel ist =$A11=""Abc
B113. / Formel ist =ISTFEHLER(SVERWEIS(B11;Feiertage;2;0))=FALSCHAbc
A121. / Formel ist =WOCHENTAG($B12;2)>5Abc
A122. / Formel ist =$A12=""Abc
B121. / Formel ist =WOCHENTAG($B12;2)>5Abc
B122. / Formel ist =$A12=""Abc
B123. / Formel ist =ISTFEHLER(SVERWEIS(B12;Feiertage;2;0))=FALSCHAbc
A131. / Formel ist =WOCHENTAG($B13;2)>5Abc
A132. / Formel ist =$A13=""Abc
B131. / Formel ist =WOCHENTAG($B13;2)>5Abc
B132. / Formel ist =$A13=""Abc
B133. / Formel ist =ISTFEHLER(SVERWEIS(B13;Feiertage;2;0))=FALSCHAbc
A141. / Formel ist =WOCHENTAG($B14;2)>5Abc
A142. / Formel ist =$A14=""Abc
B141. / Formel ist =WOCHENTAG($B14;2)>5Abc
B142. / Formel ist =$A14=""Abc
B143. / Formel ist =ISTFEHLER(SVERWEIS(B14;Feiertage;2;0))=FALSCHAbc
A151. / Formel ist =WOCHENTAG($B15;2)>5Abc
A152. / Formel ist =$A15=""Abc
B151. / Formel ist =WOCHENTAG($B15;2)>5Abc
B152. / Formel ist =$A15=""Abc
B153. / Formel ist =ISTFEHLER(SVERWEIS(B15;Feiertage;2;0))=FALSCHAbc
A161. / Formel ist =WOCHENTAG($B16;2)>5Abc
A162. / Formel ist =$A16=""Abc
B161. / Formel ist =WOCHENTAG($B16;2)>5Abc
B162. / Formel ist =$A16=""Abc
B163. / Formel ist =ISTFEHLER(SVERWEIS(B16;Feiertage;2;0))=FALSCHAbc
A171. / Formel ist =WOCHENTAG($B17;2)>5Abc
A172. / Formel ist =$A17=""Abc
B171. / Formel ist =WOCHENTAG($B17;2)>5Abc
B172. / Formel ist =$A17=""Abc
B173. / Formel ist =ISTFEHLER(SVERWEIS(B17;Feiertage;2;0))=FALSCHAbc
 
Frei
 ABC
1Jahr2004 
201.01.2004NeujahrBereich A2:B21 hat den Namen Feiertage
306.01.2004hl. 3 Könige 
423.02.2004Rosenmontag 
509.04.2004Karfreitag 
610.04.2004Ostersamstag 
711.04.2004Ostersonntag 
812.04.2004Ostermontag 
901.05.2004Maifeiertag 
1020.05.2004Christi Himmelfahrt 
1129.05.2004Pfingstsamstag 
1230.05.2004Pfingstsonntag 
1331.05.2004Pfingstmontag 
1410.06.2004Fronleichnam 
1503.10.2004Nationalfeiertag 
1631.10.2004Reformationstag 
1701.11.2004Allerheiligen 
1824.12.2004hl. Abend 
1925.12.20041. Weihnachtstag 
2026.12.20042. Weihnachtstag 
2131.12.2004Silvester 
Formeln der Tabelle
B1 : =JAHR('01'!B1)
A2 : =DATWERT("01.01."&B1)
A3 : =DATWERT("06.01."&B1)
A4 : =A7-48
A5 : =A7-2
A6 : =A7-1
A7 : =DM((TAG(MINUTE(B1/38)/2+55) & ".4." & B1)/7;)*7-WENN(JAHR(1)=1904;5;6)
A8 : =A7+1
A9 : =DATWERT("01.05."&B1)
A10 : =A7+39
A11 : =A7+48
A12 : =A7+49
A13 : =A7+50
A14 : =A7+60
A15 : =DATWERT("03.10."&B1)
A16 : =DATWERT("31.10."&B1)
A17 : =DATWERT("01.11."&B1)
A18 : =DATWERT("24.12."&B1)
A19 : =DATWERT("25.12."&B1)
A20 : =DATWERT("26.12."&B1)
A21 : =DATWERT("31.12."&B1)
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Gruß
Anzeige
AW: Eine Lösung ohne VBA
Erich
Hallo Georg,
besten Dank. Wegen einer Prozedur benötige ich VBA; trotzdem werde ich Deine
Lösung in meine Sammlung aufnehmen; kann man bestimmt mal brauchen!
mfg
Erich

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige