So, das dürfte es jetzt sein, ...
01.03.2013 19:06:57
Luc:-?
…Det;
Flgd Prozedur in ein normales Modul des VBProjekts (Rechtsklick auf Projekt im VBE-Explorer → Einfügen → Modul → in oberste Zeile desselben Option Explicit eintragen falls nicht schon vorhanden [kann im VBE eingestellt wdn]) einfügen (kurze PgmErklärung s.u.)…
Rem Signierung v.WE- u.spez (F-)Tagen m.festgelegtem Symbol
' Achtung! Prozedur bezieht sich auf d.jeweils akt Blatt!
' adKalBer-KT müssen echte Datumsangab sein (auch 29.2.)!
' Vs1.0 -LSr -CD:20130301 -1pub:20130301/herber -lUpD:20130301t
Sub WESignum()
Const lfdNr1WET As Integer = 6, symSig$ = "'-", adFT$ = "F6,DW6,NA6:NB6", _
adKalBer$ = "F6:NG6", adSigBer$ = "F37:NG66,F72:NG101,F107:NG136,F142:NG172"
Dim anzVorsp As Long, ebFT As Range, KalT As Range, SigBer As Range
anzVorsp = Range(adKalBer).Column - 1
For Each KalT In Range(adKalBer)
If WorksheetFunction.Weekday(KalT, 2)
Die Konstanten am PgmAnfang haben folgende Bedeutung:
lfdNr1WET → lfd Nr des Wochentags, ab dem die Signierung mit symSig erfolgen soll
symSig → WE-Signier-Symbol – bei - (bzw +) hier mit Textpräfix ', falls ZellFormat nicht Text ist
adFT → KT-Adress-Auflistung der Feier- u.sonstigen Tage, die ebenfalls einbezogen wdn sollen (muss noch vervollständigt wdn!)
adKalBer → Adresse des KT-Notat-Bereichs (hier Jahreskalender)
adSigBer → Adress-Auflistung der Signierbereiche (hier als Mehrfachbereichsangabe)
Durch diese Vorgehensweise stehen alle ggf zu aktualisierenden Angaben am PgmAnfang und können so leicht späteren Erfordernissen angepasst wdn. In den folgd PgmZeilen muss so idR nichts geändert wdn.
Die nachflgd Variablen haben diese Bedeutung:
anzVorsp → Vorspaltenanzahl der Tabelle; wird automatisch aus Range(adKalBer) ermittelt und im Pgm als Korrektiv benötigt
ebFT → Objekt-Laufvariable für FT-Bereiche aus Range(adFT)
KalT → Objekt-Laufvariable für Kalenderbereich Range(adKalBer) (→nach For Each-Abarbeitung automatisch Nothing
SigBer → Objekt-Laufvariable für Signierbereiche aus Range(adSigBer) (→dito)
Die Symbole wdn spaltenweise (auf 1× pro Signier-Teilbereich) eingetragen und horizontal zentriert.
Probleme könnte der 29.2. in Nicht-Schaltjahren bereiten (auch im BedingtFormat). Behelf: Als Jahr ein Schaltjahr eintragen, in dem der 29.2. nicht (bzw gerade doch, je nach Erfordernis) auf ein WE fällt.
Viel Erfolg!
SchöWE, Gruß Luc :-?