Re: wenn x dann Spalten ausblenden
16.08.2002 09:56:14
Charlie
Hallo, Michael!Nein, es ist völlig egal, was in der Spaltenüberschrift steht. Es werden die aktuelle Woche ermittelt, die entsprechende Spalte markiert und die Spalten der mehr als 4 Wochen zurückliegenden Zeiträume ausgeblendet.
Wenn Du mit der 1. Kalenderwoche nicht in Spalte A beginnst, musst Du errechnete Kalenderwoche um die Zahl erhöhen, um die die Wochen nach rechts versetzt sind. Wenn sich die 1 Kalenderwoche z.B in Spalte C befindet, musst Du die Codezeile
intKW = ISOWeek(Now) um 2 erhöhen:
intKW = ISOWeek(Now) + 2
Zusätzlich musst Du die Referenzierung der auszublendenden Spalten auch entsprechend anpassen. Bei KW 1 in Spalte C wäre das
Range(Cells(1, 3), Cells(1, intKW - 4)).EntireColumn.Hidden = True
Derzeit geht das Makro davon aus, dass sich die 1. Kalenderwoche auch in der 1. Spalte befindet. Warum das Makro bei Dir nicht funktioniert, kann ich mir nicht erklären. Klar: Wenn Du es einmal ausgeführt hast, ist der Wert der aktuellen Woche im ausgeblendeten Namen "ActWeek" gespeichert und es passiert nichts, bis sich die nach dem Tagesdatum berechnete Wochennummer ändert.
Du kannst den ausgeblendeten Namen aber mit
ThisWorkbook.Names("ActWeek").Delete
löschen, damit das Makro wieder ausgeführt wird. Einfacher geht es, wenn Du in der Codezeile
ThisWorkbook.Names.Add Name:="ActWeek", RefersTo:=intKW, Visible:=False
alles nach RefersTo:=intKW entfernst. Das muss dann so aussehen:
ThisWorkbook.Names.Add Name:="ActWeek", RefersTo:=intKW
Dann ist der Name "ActWeek" sichtbar und Du kannst ihn auch über Menü "Einfügen" - "Namen" - "Definieren" löschen.
:ich hoffe, die Formel sieht arbeitsintensiver aus, als sie es tatsächlich war
Dazu nur soviel: Das hat wahrscheinlich sogar mehr Zeit und Grübeln gekostet, als man auf den ersten Blick glauben wird. Das Hauptproblem war, eine Lösung dafür zu finden, dass das Makro immer nur an einem Montag ausgeführt wird. Ich hätte es mir auch einfacher machen können, indem das Makro bei jedem Öffnen der Datei abläuft. Du würdest beim Öffnen der Datei wahrscheinlich auch gar keinen Zeitverlust bemerken. Aber den bereits erledigten Vorgang wahrscheinlich nicht nur 1x pro Tag, sondern mehrmals täglich durchzuführen (bei jedem Öffnen der Datei), war mir einfach zu easy. ;)) Mit dem Trick, die Wochennummer der letzten Aktualisierung in einem Namen zu speichern, funktioniert es ganz gut.
Ich hoffe, dass Du das Makro doch noch zum Laufen bewegen kannst. Sonst melde Dich wieder.
Viel Erfolg,
Charlie