Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1964to1968
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
Inhaltsverzeichnis

Wochenenden+Feiertage per VBA Markieren f. bestimmte Blätter

Wochenenden+Feiertage per VBA Markieren f. bestimmte Blätter
27.02.2024 12:55:47
Unwissender
Servus, vielleicht kann mir hier jemand helfen? Und zwar habe ich eine Excel Datei worin es mehrere Blätter gibt wie z.B. Zusammenfassung, Planung, aber auch Blätter die Monatlich neu hinzu kommen und immer nach dem selben Schema aufgebaut sind für die einzelnen Monate. z.B. für diesen Monat heißt das Blatt 02_24, für März heißt es 03_24, April: 04_24

Innerhalb dieser Blätter gibt eine Zeile wo die Monatstage von links nach rechts drin stehen (in dem Falle D6 - AH6)
Und nach unten hin gibt es halt mehrere Zeilen, der Bereich geht also von D6 - AH369

Wie bekomme ich es jetzt hin, per VBA Makro/Skript dass er mir die Wochenenden gelb Markiert (also von D6 ausgehend bis ganz runter zu Zeile 369, und auch die Feiertage die im Blatt "Feiertage" in A2-A34 stehen, Orangefarben markiert?
Bedingte Formatierung ist nicht so gut, weil dann anscheinend die Farben der bedingten Formatierung Vorrang haben, vor manuell gesetzten Farben. In einigen Zellen wird ja was eingeschrieben und da soll die Farbe händisch von Gelb in eine andere Farbe geändert werden, je nachdem wer da was einträgt. Daher per VBA dass er mir das nur vor-Färbt sozusagen

Das ganze soll halt auch nur auf die Blätter angewandt werden, welche nach dem Schema "mm_jj" aufgebaut sind

Mfg.

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

Betreff
Datum
Anwender
Anzeige
AW: Wochenenden+Feiertage per VBA Markieren f. bestimmte Blätter
27.02.2024 13:15:23
{Boris}
Hi,

Bedingte Formatierung ist nicht so gut, weil dann anscheinend die Farben der bedingten Formatierung Vorrang haben, vor manuell gesetzten Farben. In einigen Zellen wird ja was eingeschrieben und da soll die Farbe händisch von Gelb in eine andere Farbe geändert werden

Genau das (händische Einfärben) würde ich überdenken. Das könnte man auch via BedForm regeln, wenn Du da ein bisschen mehr Hintergrundinfos zu lieferst.

VG, Boris
AW: Wochenenden+Feiertage per VBA Markieren f. bestimmte Blätter
27.02.2024 13:26:44
Unwissender
Soll hier in dem falle aber durchaus so sein. Ich habe schon ein Makro geschrieben welches mir per Knopfdruck ein neuen Monat anlegt und das Blatt entsprechend benennt (eben in dem mm_jj Format). Darin gibt's in den ganzen Zeilen runter zus mehrere Mitarbeiternamen. Und oben in der Zeile eben die Tage des Monats von links nach Rechts. Da es ein neues Blatt ist steht auch nirgendwo was drin bei den Mitarbeitern. Daher können beim erstellen des Blattes schon mal die ganzen Spalten runter zus entsprechend eingefärbt werden (auch wenn noch nichts drin steht) sodass man sieht - da ist ein Wochenende (Samstag, Sonntag) und da ist ein Feiertag. Bei Bedarf soll derjenige der da was einschreibt aber die Möglichkeit haben, die Zelle anders ein zu Färben wenn er da was einträgt was an einem Wochenende oder Feiertag liegt.

Gerne hätt ich aber noch zusätzlich eine Möglichkeit via Makro zu sagen - mach das nur für den Blattnamen der nach dem Schema aufgebaut ist (andere Excel Datei) - da gehts mir nur um den Befehl wie das heißt, also sowas wie
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets (hier fehlt der Befehlsname wie ich dem sagen kann - mach das nur für Blätter mit dem Schema "xx_xx" wobei xx jeweils eine Zahl zwischen 0 und 9 sein kann )
...befehle...
Next ws
Anzeige
AW: Wochenenden+Feiertage per VBA Markieren f. bestimmte Blätter
27.02.2024 13:26:31
daniel
Hi
im prinzip so (Code ist allerdings nicht getestet, also bitte nicht kopieren, sondern lesen, verstehen und selber schreiben)
dim sh as worksheet

dim Zelle as range

for each sh in thisworkbook.worksheets
if sh.Name like "##_##" Then
for each Zelle in sh.Range("D6:AH6")
if isnumeric(Zelle.value) then
if Worksheetfunction.Weekday(zelle.value, 2) >= 6 Then
Zelle.resize(364, 1).Interior.Color = ??? 'bitte gewünschte Farbnummer selbst ermitteln
elseif Worksheetfunction.countif(Sheets("Feiertage").Range("A2:A34"), Zelle.Value) > 0
Zelle.Resize(364, 1).Interior.Color = ??? 'bitte gewünschte Farbnummer selbst ermitteln
else
end if
next Zelle
end if
next sh



Gruß Daniel
Anzeige
AW: Wochenenden+Feiertage per VBA Markieren f. bestimmte Blätter
27.02.2024 16:01:18
Unwissender
Hmm so richtig scheint das nicht zu funktionieren.
der Teil "if sh.Name like "##_##" Then" hat mir aber schonmal bei meiner zweiten frage weitergeholfen.

Aber das VBA selber funktioniert so nicht beim Markieren :-/
AW: Wochenenden+Feiertage per VBA Markieren f. bestimmte Blätter
27.02.2024 16:22:55
{Boris}
Hi,

Daniel hat den Code ja aus der Hand geschrieben (und das auch dazugesagt, dass Du da mit Verstand draufschauen sollst).
Da fehlt mal ein Then und ein End If - und natürlich die Farbcodes - aber das bekommst Du bestimmt selbst hin.
Nur ein wesentlicher Hinweis: IsNumeric liefert bei Datumsangaben FALSE zurück - daher musst Du das durch IsDate ersetzen.

VG, Boris
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige