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

Forumthread: Markierung aktuelle KW und Ein-/Ausblenden mit VBA

Markierung aktuelle KW und Ein-/Ausblenden mit VBA
08.09.2017 10:37:44
Nadine
Hey ihr Lieben,
Ich befasse mich aktuell mit Projektplanung und stoße gewaltig an meine VBA Grenzen.
Ich habe zunächst eine Excel Tabelle angelegt mit dem Namen Projektübersicht. In dieser Tabelle würde ich gerne mittels VBA die aktuelle Kalenderwoche farblich markieren lassen. Außerdem soll die Markierung mitwandern, d.h. neue Woche, neue Markierung (ich hoffe ihr versteht was ich meine) Ich kann das natürlich auch mit bedingter Formatierung machen (hab ich bis jetzt auch), aber da ständig neue Projekt hinzugefügt werden, wandert die Markierung nicht automatisch mit und auch so bin ich nicht der größte Fan der bedingten Formatierung.
Außerdem hab ich bis jetzt ein Makro geschrieben, dass ausgehend von der aktuellen KW immer nur 2 Wochen davor und 10 Wochen danach anzeigt, der Rest wird ausgeblendet. Jetzt kam mein Chef auf die glorreiche Idee doch ein halbes Jahr Ausblick zu machen. Jetzt passt das aber immer mit dem blöden Jahr nicht mehr :( und er zeigt maximal bis Ende 2017 an.
Und dann wünsche ich mir noch einen kleinen Specialeffect :) Da hab ich nur leider überhaupt keine Ahnung wie das klappen soll :)
und zwar möchte ich gerne, dass immer wenn eine Kalenderwoche vorbei ist, eine neue hinten (am Ende der Tabelle) angefügt wird.
Ich hoffe irgendjemand von euch kann mir bei meinen vielen Problemen helfen :)
Ich hoffe ich hab das richtig gemacht. An und für sich sollte in dem Link eine Beispieldatei zu finden sein.
https://www.herber.de/bbs/user/116116.xlsm
Danke schon mal,
Liebe Grüße
Nadine
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Markierung aktuelle KW und Ein-/Ausblenden mit VBA
08.09.2017 14:58:20
MCO
Hallo Nadine!
Ich habs mal gewagt, alles umzusetzen. Einige Deiner vorbereiteten Sachen sind dabei leider über die Klinge gesprungen, z.b. die Ermittlung der KW.
Schau mal rein.
Alle Wünsche hab ich umgesetzt, auch den SpecialFX, VBA mit Kommentaren versehen.
https://www.herber.de/bbs/user/116123.xlsm
Gruß, MCO
Anzeige
AW: Markierung aktuelle KW und Ein-/Ausblenden mit VBA
08.09.2017 18:09:14
KlausF
Hallo Nadine,
wenn Du immer nur 2 Wochen davor anzeigen willst, dann kommst Du ohne Makro aus.
Ich habe nur die KW-Funktion von MCO übernommen. Die aktuelle KW muss ja gar nicht
farblich wandern, es reicht ja wenn die Formeln weiter wandern :-)
Du brauchst damit auch das Datum 1. Januar als Bezugspunkt nicht mehr.
Desweiteren habe ich lediglich in der Spalte L ab Zeile 7 eine Bedingte Formatierung eingegeben,
die abhängig von der Eingabe einer Projektnummer ist, – für den Fall, dass die farbige
KW-Markierung über die gesamte Spalte angezeigt werden soll.
Kannst ja mal probieren
https://www.herber.de/bbs/user/116129.xls
Gruß
Klaus
PS. Die KW-Funktion bräuchte man eigentlich auch nicht. Die korrekte KW nach DIN lässt sich
auch über eine entsprechende Formel errechnen (siehe Excelformeln.de)
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Markierung der aktuellen KW in Excel mit VBA


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Modul hinzufügen: Klicke mit der rechten Maustaste auf „VBAProject (DeineDateiName)“ und wähle „Einfügen“ > „Modul“.

  3. Code für die aktuelle KW einfügen: Füge den folgenden Code in das Modul ein, um die aktuelle Kalenderwoche zu markieren:

    Sub MarkiereAktuelleKW()
       Dim ws As Worksheet
       Dim aktuelleKW As Integer
       Dim zelle As Range
    
       Set ws = ThisWorkbook.Sheets("Projektübersicht")
       aktuelleKW = Application.WorksheetFunction.WeekNum(Date)
    
       For Each zelle In ws.Range("A1:A52") 'Anpassung je nach deinem Datenbereich
           If Application.WorksheetFunction.WeekNum(zelle.Value) = aktuelleKW Then
               zelle.Interior.Color = RGB(255, 255, 0) 'Gelbe Markierung
           Else
               zelle.Interior.ColorIndex = xlNone 'Keine Markierung für andere Wochen
           End If
       Next zelle
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle „MarkiereAktuelleKW“ aus und klicke auf „Ausführen“.

  5. Kalenderwoche automatisch aktualisieren: Um sicherzustellen, dass die Markierung der aktuellen KW automatisch wandert, kannst du das Makro regelmäßig ausführen oder bei jedem Öffnen der Datei.


Häufige Fehler und Lösungen

  • Problem: Die Markierung bleibt bestehen, auch wenn die KW wechselt.

    • Lösung: Stelle sicher, dass das Makro bei jedem Öffnen der Datei oder in regelmäßigen Abständen ausgeführt wird.
  • Problem: Die aktuelle KW wird nicht korrekt ermittelt.

    • Lösung: Überprüfe, ob die Datumswerte in der richtigen Form vorliegen und die korrekte Datumsformatierung verwendet wird.

Alternative Methoden

  • Bedingte Formatierung: Du kannst auch die bedingte Formatierung verwenden, um die aktuelle Kalenderwoche farblich hervorzuheben. Gehe dazu zu „Start“ > „Bedingte Formatierung“ > „Neue Regel“ und wähle „Formel zur Ermittlung der zu formatierenden Zellen verwenden“. Nutze die Formel:

    =WOCHE(A1)=WOCHE(HEUTE())
  • Excel-Funktionen: Anstelle von VBA kannst du die Excel-Funktionen WOCHE und HEUTE nutzen, um die aktuelle KW anzuzeigen.


Praktische Beispiele

  • Projektübersicht für Kalenderwochen: Erstelle eine Projektübersicht, in der jede Kalenderwoche (KW) in einer eigenen Zeile aufgelistet ist. Verwende das oben genannte Makro, um die „aktuelle KW“ automatisch zu markieren.

  • Kalenderwochen 2017: Wenn du auf vergangene Kalenderwochen zugreifen möchtest, kannst du eine Tabelle erstellen, die die Daten von 2017 enthält und die aktuelle KW entsprechend anzeigt.


Tipps für Profis

  • Automatisierung: Nutze die Workbook_Open-Ereignisprozedur, um das Makro automatisch beim Öffnen der Datei auszuführen:

    Private Sub Workbook_Open()
       Call MarkiereAktuelleKW
    End Sub
  • Sichtbarkeit der KW: Verwende die Funktion „Ausblenden“ in VBA, um nicht benötigte Kalenderwochen auszublenden und nur die aktuelle KW sowie 2 Wochen davor und 10 Wochen danach anzuzeigen.


FAQ: Häufige Fragen

1. Wie finde ich heraus, welche KW aktuell ist?
Du kannst die Funktion =WOCHE(HEUTE()) verwenden, um die aktuelle Kalenderwoche in einer Zelle anzuzeigen.

2. Welche Excel-Version benötige ich für VBA?
VBA ist in den meisten modernen Excel-Versionen ab Excel 2007 verfügbar. Stelle sicher, dass du eine kompatible Version verwendest.

3. Kann ich die aktuelle KW auch in einer Pivot-Tabelle anzeigen?
Ja, du kannst die aktuelle KW in einer Pivot-Tabelle anzeigen, indem du eine entsprechende Gruppierung nach Woche vornimmst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige