Anzeige
Archiv - Navigation
1348to1352
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

@fcs VBA Gantt Chart

@fcs VBA Gantt Chart
17.02.2014 14:17:52
Dip
Neue Antwort ganz unten :-)
Guten Tag Allerseits,
Gerne würde ich die folgende Problemstellung ins Forum einbringen, in der Hoffnung, jemand kann mir weiterhelfen!
Es geht darum, einen automatisierten Gantt-Chart auf Basis einer Projektstruktur zu generieren:
Im folgenden File:
https://www.herber.de/bbs/user/88262.xlsx
gibt es zwei Arbeitsblätter...
Im Arbeitsblatt "Hilfstabelle Pivot" stehen die Grunddaten in Form einer Pivot Tabelle. Das Pivot würde bereits vorhanden sein. Es beinhaltet die Projektstruktur, Bezeichnung, Start- Enddatum sowie Dauer.
Im zweiten Arbeitsblatt "Timeline" würde nun der automatisierte Gantt-Chart erscheinen, auf Basis der Pivotdaten im Arbeitsblatt "Hilfstabelle Pivot".
Folgende Parameter sind zu berücksichtigen für den Gantt-Chart im Arbeitsblatt "Timeline":
- Der Zeitstrahl des Gantt-Charts ist gegliedert über Jahr, Monat, KW, Tag bis zum Datum. Der Benutzer kann die Detailebene auswählen (über eine Auswahlbox?) -Jahressicht?, Monatssicht?, KW-Sicht?, Tagessicht?... z.B. bei Jahressicht, würde der Kalender sich komprimieren, ein Jahr pro Spalte... und je detaillierter die Sicht desto mehr expandieren würde sich der Kalender... Eine Art Gruppierung, nach unten sowie nach rechts...
- Der Benutzer hat die Auswahl (über eine Auswahlbox?), welche Ebene er angezeigt haben möchte(Spalte A) - Ebene Strategisches Projekt?, Vorhaben?, Projekt?, oder alle gemeinsam?... Basierend auf seiner Auswahl der Ebene, zeigt er die entsprechenden Daten des Pivots an (Spalte B bis F)
- Basierend auf dem Start- bzw. Enddatum werden automatisch die Zellen (ab Spalte H) farblich ausgefüllt, und zwar entsprechend der hinterlegten Farbe für die jeweilige angegebenen Phase in Spalte C. Samstage und Sonntage sollen durchgehend Grau ausgefüllt werden. Ganz elegant wäre es, wenn man ausserdem nach Wunsch das Wochenende ein- bzw. ausblenden könnte, aber kein Muss hier.
- Der Kalender würde von 2013 bis 2050 reichen. Dabei sollte man auswählen können, ab welches Jahr der Kalender beginnt. z.B. falls 2015 dann würde der Kalender von 2015 bis 2052 reichen.
Sehr hilfreich wäre, wenn zusätzlich folgende Konstanten in den Code definiert werden könnten, damit zukünftige Anpassungen mühelos erfolgen können:
- Farben des Zeitstrahls je Projektphase
- Startjahr des Kalenders
- In welchen Spalten bzw. Zellen sich die entsprechenden Kriterien (Ebene, Phase, Start, Ende, erster Tag des Kalenders etc..) befinden, falls Spalten/Zellen hinzugefügt/gelöscht werden.
Ich bin mir bewusst, dass diese Problemstellung gar nicht einfach zu lösen ist und viel Wissen und Können abverlangt... Für alle Profis hier vielleicht eine interessante Herausfoderung...
Ich bin über jeglichen Hinweis, Input, Lösung sehr dankbar!
Euch allen einen schönen Tag!
Beste Grüsse
Dip
Hallo Dip,
ich hab die Herausforderung angenommen und deine Wunschliste mal versucht umzusetzen. Es war schon eine ziemliche Fummelarbeit.
Die farbliche Gestaltung erfolgt über Zellformatvorlagen. D.h. die Farben sind nicht im Code fest verankert, sondern können direkt über die Anpassung der entsprechenden Formatvorlagen geändert werden.
Die Detailierung der Anzeige für Projekt/Vorhaben/Vorhabendetails erfolgt wie in deiner Beispieldatei über die Gliederungsfunktion.
Für die Einstellung des Zeitrasters hab ich ein Userform eingebaut.
Mit den paar Testdaten geht das ganze recht flott. Wie das bei vielen Projekten/Tagen aussieht kann ich dir nicht sagen.
Gruß
Franz
https://www.herber.de/bbs/user/88425.xlsm
Hallo Franz,
Ich habe mir nun deine Lösung genauer angeschaut und in meiner vorhandenen Planungsdatei eingearbeitet. Wirklich tolle Lösung!
Gerne würde ich noch ein paar Punkte nachfragen:
- Das Start-, Enddatum sowie Zeitraster (Jahr/Monat/...) bleiben nicht "gespeichert". Wenn man den Button "Timeline ändern" auswählt, sind alle vorher eingegebenen Parameter nicht mehr eingestellt. Es wäre sehr hilfreich, wenn die eingegebenen Parameter festgehalten werden, so müsste man nicht ausprobieren welche Werte man damals eingegeben hatte...?
Ganz elegant wäre es, wenn sich die Zeilen 14-17 im Blatt "Timeline" je nach ausgewählten Zeitraster anpassen würden (Zb. wenn Monat ausgewählt werden würde, werden die Zeitraster darunter, dh. Zeile 15-17 (KW/Tag/Datum) ausgeblendet).
- Gerne würde ich als Zeitraster noch "Halbjahr" und "Quartal" auswählen können?
- Wäre es möglich, dass sich die Phasen automatisch neu "ausfüllen", nachdem man die Projekdaten (Button "Projektdaten einlesen") neu eingelesen hat? Aktuell werden die Phasen gelöscht und man muss die Parameter wieder neu eingeben?
- Wenn man noch eine neue Ebene über allen anderen (eine Ebene über "Strategisches Projekt") bräuchte, könnte man dies so einfach einstellen, indem man angibt wieviele Ebene es gibt oder neue Spalte hinzufügt?
- Elegant wäre zusätzlich eine rote vertikale Linie einzubetten, welche dem heutigen Datum entspricht und man somit auf einem Blick sieht, welche Phasen in der Vergangenheit liegen und welche von heute ab noch anstehen :-)
- Würde es das ganze vereinfache, wenn statt dass die Projektdaten über das Makro eingelesen werden, ich das Pivot direkt in das Blatt "Timeline" in gleicher Form einsetzen würde?
Wäre dies möglich so umzusetzen?
Vielen Dank im Voraus für Deine Aufmerksamkeit Franz!
Beste Grüsse
Patrick

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: @fcs VBA Gantt Chart
19.02.2014 08:43:42
fcs
Hallo Patrick,
ich hab frühestens am Wochende Zeit mir das etwas genauer anzusehen.
- Das Start-, Enddatum sowie Zeitraster (Jahr/Monat/...) bleiben nicht "gespeichert". Wenn man den Button "Timeline ändern" auswählt, sind alle vorher eingegebenen Parameter nicht mehr eingestellt. Es wäre sehr hilfreich, wenn die eingegebenen Parameter festgehalten werden, so müsste man nicht ausprobieren welche Werte man damals eingegeben hatte...?
Ganz elegant wäre es, wenn sich die Zeilen 14-17 im Blatt "Timeline" je nach ausgewählten Zeitraster anpassen würden (Zb. wenn Monat ausgewählt werden würde, werden die Zeitraster darunter, dh. Zeile 15-17 (KW/Tag/Datum) ausgeblendet).

Die Eingabewerte im Userform könnte man auf einem separaten Blatt speichern und beim Öffen der Userform in die Steuerelemente laden.
- Gerne würde ich als Zeitraster noch "Halbjahr" und "Quartal" auswählen können?
So etwas sollte man sich zu Beginn eines Projektes überlegen, wenn man die Anforderungen definiert und nicht dann man eine Lösung hat. Umsetzen ist zeitaufwendig, da vielen Stellen Anpassungen/Ergänzungen erforderlich werden.
- Wäre es möglich, dass sich die Phasen automatisch neu "ausfüllen", nachdem man die Projekdaten (Button "Projektdaten einlesen") neu eingelesen hat? Aktuell werden die Phasen gelöscht und man muss die Parameter wieder neu eingeben?
Das kann man schon machen, wenn die Eingaben im Userform zwischengespeichert werden.
- Wenn man noch eine neue Ebene über allen anderen (eine Ebene über "Strategisches Projekt") bräuchte, könnte man dies so einfach einstellen, indem man angibt wieviele Ebene es gibt oder neue Spalte hinzufügt?Hier musst du dich entscheiden was du willst; hier etwas variabel einzustellen wird extrem kompliziert, da hier einfach zu viele Sachen betroffen sein werden. Wenn du das umsetzen willst, dann solltest du dir kostenpflichtige Hilfe besorgen.
- Elegant wäre zusätzlich eine rote vertikale Linie einzubetten, welche dem heutigen Datum entspricht und man somit auf einem Blick sieht, welche Phasen in der Vergangenheit liegen und welche von heute ab noch anstehen :-)
Kann man im Prinzip machen, damit die Anzeige immer korrekt ist müsste hier eine AKtualisierung bei jedem Öffnen der Datei erfolgen. Damit es nicht zu kompliziert wird sollte allerdings nicht eine Linie eingefügt werden, sondern nur eine Zelle/Spalte farblich markiert werden.
- Würde es das ganze vereinfache, wenn statt dass die Projektdaten über das Makro eingelesen werden, ich das Pivot direkt in das Blatt "Timeline" in gleicher Form einsetzen würde?
Wahrscheinlich nicht.
Dann müßten die Daten, die aus dem Pivotbericht eingefügt werden, 100% genau so aussehen wie sie jetzt das Aktualisierungsmakro einträgt. Ich hab nämlich keine Lust da etwas umzuprogrammieren.
Gruß
Franz

Anzeige
AW: @fcs VBA Gantt Chart
20.02.2014 19:47:24
Dip
Hallo Franz,
Danke für Dein Feedback!
Zu Punkt 1: Wenn man die Eingabewerte zwischenspeichern könnte wäre dies super!
Zu Punkt 2: War mir nicht bewusst dass die Erweiterung des Zeitstrahls so zeitaufwendig ist. Auf Halbjahr wäre toll gewesen aber ist nicht Priorität.
Zu Punkt 3: dito Punkt 1
Zu Punkt 4: Wenn man vorsorglich zusätzlich 3 Ebenen vorsehen würde? Sonst entfällt halt diese Ergänzung.
Zu Punkt 5: Ich lasse mich gerne von dir überraschen :-) ich denke du würdest sogar eine bessere Idee diesbezüglich haben wie man es am besten darstellt.
Zu Punkt 6: Ich werde ein bisschen herumspielen und versuchen das Pivot gleich deiner Vorgabe zu integrieren.
Bin gespannt auf dein Feedback.
Vielen Dank für Deine Aufmerksamkeit Franz!
Beste Grüsse
Patrick

Anzeige
AW: @fcs VBA Gantt Chart
20.02.2014 19:55:32
Dip
ps. Dein Makro betreffend "Vergleich Werte und kopiere Zeile" habe ich integriert und getestet und es funktioniert mit kleinen Anpassungen hervorragend!!
Herzlichen Dank dafür Franz!!
Wünsche Dir einen schönen Abend
Beste Grüsse
Patrick

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige