Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Feiertage ausblenden

Forumthread: Feiertage ausblenden

Feiertage ausblenden
01.03.2025 08:30:30
NicoHendrik
Hallo Onur, Raimund,


könnt ihr auch damit helfen die Feiertage auch so auszublenden )löschen) wie mit den Wochenenden?

Gruss Nico

https://www.herber.de/bbs/user/176071.xlsm
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Feiertage ausblenden
01.03.2025 09:41:26
RPP63
Moin!
Du musst das Change mit einem ElseIf-Zweig erweitern.
Ich nehme übrigens statt cel.Value = "" cel.ClearContents
Kommt auf das gleiche hinaus, ist aber "sauberer".
Ich musste übrigens etwas nach der Feiertagsliste suchen.
Besser wäre die in einem eigenen Blatt aufgehoben und mit einem Namen versehen.
Begründung:
Solltest Du irgendwann komplette Zeilen im Bereich A:AS löschen oder hinzufügen, funktioniert das hartkodierte Makro nicht mehr.
Egal, ich habe dies nicht berücksichtigt.
Das erweiterte Change lautet dann (Deklarationen sollten am Anfang des Makros stehen):
Private Sub Worksheet_Change(ByVal Target As Range)

Dim z, s, cel, FT
If Not Intersect(Target, Range("J6:NK57")) Is Nothing Then
For Each cel In Target
z = cel.Row: s = cel.Column
If Weekday(Cells(6, s), 2) > 5 Then 'Stop
Application.EnableEvents = False
cel.Value = ""
Application.EnableEvents = True
ElseIf Not IsError(Application.Match(Cells(6, s), Range("AT63:AT77"), 0)) Then
Application.EnableEvents = False
cel.ClearContents
Application.EnableEvents = True
End If
Next
End If
End Sub


Gruß Ralf
Anzeige
Noch ergänzend
01.03.2025 09:51:11
RPP63
• Variablen sollten dimensioniert werden
• EnableEvents sollte immer eine Fehlerbehandlung haben
• die nicht benötigte Variable z habe ich entfernt
Private Sub Worksheet_Change(ByVal Target As Range)

Dim s As Long, cel As Range, FT As Variant
On Error GoTo errExit
Application.EnableEvents = False
If Not Intersect(Target, Range("J6:NK57")) Is Nothing Then
For Each cel In Target
s = cel.Column
If Weekday(Cells(6, s), 2) > 5 Then 'Stop
cel.ClearContents
ElseIf Not IsError(Application.Match(Cells(6, s), Range("AT63:AT77"), 0)) Then
cel.ClearContents
End If
Next
End If
errExit:
Application.EnableEvents = True
End Sub
Anzeige
AW: Noch ergänzend
01.03.2025 11:56:30
NicoHendrik
Hallo,

danke für die schnelle Hilfe,

bist du aber so nett und sendest mir den Code mit meine Tabelle zusammen, das ich alles besser Verstehen kann.

Bin nun Mal ein Anfänger.

Gruss Nico
AW: Upload
01.03.2025 12:28:03
GerdL
Moin Nico!
Ich habe den letzten Code von Ralf drüberkopiert u. J6 auf J8 geändert.
https://www.herber.de/bbs/user/176073.xlsm
Gruß Gerd
Anzeige
AW: Upload
01.03.2025 12:44:46
NicoHendrik
Hallo Gerd,


vielen Dank. Läuft super

Gruss Nico
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18