Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
812to816
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
812to816
812to816
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Gantt-Plan , Problem bei "Kalenderwochen-Ansicht"

Gantt-Plan , Problem bei "Kalenderwochen-Ansicht"
29.10.2006 20:37:33
Kai
Hallo,
habe einen Gantt-Plan auf Basis eines Kalenders erstellt (Tage, an denen Aktivitäten stattfinden werden mit Bedingter Formatierung farbig unterlegt). Ich möchte natürlich kein Tabellenblatt mit 200 Tagen ausdrucken, habe deshalb nach Schels "Projektmanagement mit Excel" eine VBA-Prozedur "Nur Kalenderwochen anzeigen" erstellt.
Code:
_____________________________________

Sub zeitachseKW()
Dim i, x As Integer
zeitachseTage
Range("BeginnZeitachse").Select
i = ActiveCell.Column
Application.ScreenUpdating = False
Do While i < 200
If Cells(1, i) = "" Then
Cells(3, i).EntireColumn.Hidden = True
End If
i = i + 1
Loop
Application.ScreenUpdating = True
End Sub

__________________________________
Diese relativ simple Lösung funktioniert, führt aber dazu, dass nur noch die Montage angezeigt werden (weil sich in den Zellen über dem Wochentag Montag jeweils die Kalenderwochen-Angabe befindet).
Problem dabei:
Balken die zwisschen Dienstag und Sonntag angesiedelt sind, verschwinden aus der Tabellenblatt-Ansicht.
Ich hätte nun gerne, dass alle Montage, bei welchen an den darauffolgenden Tagen Aktivitäten stattfinden, in der komprimierten Kalenderwochenansicht durch eine farbig unterlegte Zelle gekennzeichnet werden.
Über VBA lässt sich das sicherlich lösen, übersteigt jedoch meine Fähigkeiten.
Könnt ihr mir helfen?
Gruß,
Kai

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

Betreff
Datum
Anwender
Anzeige
AW: Gantt-Plan , Problem bei "Kalenderwochen-Ansicht"
29.10.2006 21:22:45
Daniel
Hallo
woran erkennt man denn, das eine Aktivität an einem bestimmten Tag stattfindet?
vom Prinzip her musst du, wenn die Schleife bei einem Montag angekommen ist, eine zweite Schleife einbauen, die in der aktuellen Spalte alle Reihen durchprüft, ob in den 7 Tagen dieser Woche eine Aktivität vorliegt oder nicht, und die Zellfarbe entsprechend setzt.
kannst du mal eine funktionsfähige Datei hochladen?
Gruß, Daniel
alternative Lösung
29.10.2006 22:06:06
Daniel
Hallo
probier mal diesen Code.
die Kennzeichnung der KWs mit ausgeblendeten Inhalten erfolgt über bedingete Formatierung.
Da dieses Makro auf Schleifen verzichtet, sollte es auch bei grossen Projekten recht schnell gehen.

Sub Ausblenden()
With Range(Cells(1, ActiveCell.Column), Cells(1, 200))
.SpecialCells(xlCellTypeConstants).EntireColumn.Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=ANZAHL2(ZS(1):ZS(6))>0"
Selection.FormatConditions(1).Interior.ColorIndex = 44
Rows("1:2").FormatConditions.Delete
.SpecialCells(xlCellTypeBlanks).EntireColumn.Hidden = True
End With
End Sub


Sub Einblenden()
With Cells
.FormatConditions.Delete
.EntireColumn.Hidden = False
End With
End Sub

Gruß, Daniel
Anzeige
AW: alternative Lösung korregiert
29.10.2006 22:22:35
Daniel
Hallo,
beim Einblenden muß ja die originale bedingte Formatierun wieder hergestellt werden, daher dieser Code:

Sub Ausblenden()
With Range(Cells(1, ActiveCell.Column), Cells(1, 200))
.SpecialCells(xlCellTypeConstants).EntireColumn.Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=ANZAHL2(ZS:ZS(6))>0"
Selection.FormatConditions(1).Interior.ColorIndex = 6
Rows("1:2").FormatConditions.Delete
.SpecialCells(xlCellTypeBlanks).EntireColumn.Hidden = True
End With
End Sub


Sub Einblenden()
Cells.EntireColumn.Hidden = False
Range(Cells(3, 2), Cells(999, 200)).Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=zs<>"""""
Selection.FormatConditions(1).Interior.ColorIndex = 6
End Sub

Gruß, Daniel
Anzeige
AW: alternative Lösung korregiert
30.10.2006 01:39:18
Kai
Erst einmal vielen Dank für Deine Mühe.
Das Aus- und Einblenden funtioniert mit dem von Dir geposteten Code, allerdings funktioniert die Sache mit den bedingten Formatierungen nicht. Wenn ich den Code übernehme, habe ich beinahe auf dem kompletten Blatt gelbe Balken.
Hab mal meine ursprüngliche Version hochgeladen - mitsamt des von mir eingangs beschriebenen Problems:
https://www.herber.de/bbs/user/37770.xls
Gruß,
Kai
AW: alternative Lösung korregiert
30.10.2006 10:29:07
Daniel
Hallo
da ich das Original nicht zur Verfügung hatte, mußt du den Code natürlich noch an deine gegebenheiten anpassen:
in der Sub "Ausblenden" noch folgende Änderungen vornehmen:
- Ändern: die FormatCondition Formula1:="=SUMME(ZS:ZS(6))&gt0"
- Ändern: Rows("1:4").Formatconditions.delete
- Einfügen: Selection.FormatConditions(1).Font.ColorIndex = 6
in der Sub "Einblenden" mußt du die Original-Bedingten Formate wieder herstellen.
dis bekommst du am besten raus, in dem du die Formate einträgst und den Recorder mitlaufen lässt. (achtung, es wird nur was aufgezeichnet, wenn was geändert wird, daher in der Formel einfach ein Leerzeichen einfügen und wieder entfernen.)
diese Formatierung kopierst du dann in die Sub "Einblenden" nach "selection.formatcontitions.delete" rein.
Den Zellbereich in der 2. Zeile solltest du auch noch entsprechend anpassen.
Sicherer ist auch, wenn du vor dem Aufzeichnen in EXTRAS-OPTIONEN-ALLGEMEIN die Bezugsart auf "Z1S1" umstellst, dann stimmen auf jeden Fall die Relativen Zellbezüge.
sonst könnte es Probleme geben, wenn der selektierte Zellbereich beim Aufzeichnen nicht mit dem selektierten Zellbereich im Makro übereinstimmt.
Gruß, Daniel
PS
das "&gt0" in der ersten Formel steht für "größer als 0"
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige