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

VBA Gantt Chart

Forumthread: VBA Gantt Chart

VBA Gantt Chart
03.12.2013 08:27:44
Dip
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

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Gantt Chart
08.12.2013 10:17:53
fcs
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
Anzeige
;
Anzeige

Infobox / Tutorial

Automatisierung eines Gantt Charts in Excel mit VBA


Schritt-für-Schritt-Anleitung

  1. Vorbereitung der Daten: Stelle sicher, dass du eine Pivot-Tabelle mit den benötigten Daten hast. Deine Tabelle sollte die Projektstruktur, Bezeichnung, Start- und Enddatum sowie die Dauer enthalten.

  2. Erstellen der Arbeitsblätter: Du benötigst zwei Arbeitsblätter – eines für die Hilfstabelle (z. B. "Hilfstabelle Pivot") und eines für das Gantt Chart (z. B. "Timeline").

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

  4. Einfügen eines neuen Moduls: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen > Modul.

  5. Code für das Gantt Chart: Füge den folgenden Code in das Modul ein:

    Sub ErstelleGanttChart()
       Dim wsPivot As Worksheet
       Dim wsGantt As Worksheet
       Dim startDatum As Date
       Dim endDatum As Date
       Dim i As Long
       Dim zeile As Long
    
       Set wsPivot = ThisWorkbook.Sheets("Hilfstabelle Pivot")
       Set wsGantt = ThisWorkbook.Sheets("Timeline")
    
       ' Hier kannst du die Start- und Enddaten definieren
       startDatum = DateValue("01.01.2013")
       endDatum = DateValue("31.12.2050")
    
       ' Gantt Chart erstellen
       For i = 1 To wsPivot.Cells(Rows.Count, 1).End(xlUp).Row
           ' Daten aus der Pivot-Tabelle lesen und im Gantt-Chart ausgeben
           zeile = i + 1 ' Beispiel für die Gantt-Darstellung
           wsGantt.Cells(zeile, 1).Value = wsPivot.Cells(i, 1).Value ' Projektname
           ' Hier dein Code zur farblichen Gestaltung und Datumsermittlung
       Next i
    End Sub
  6. Ausführung des Codes: Schließe den VBA-Editor und führe den Code aus, indem du im Excel-Fenster ALT + F8 drückst, den Namen deines Makros auswählst und auf Ausführen klickst.

  7. Anpassungen vornehmen: Du kannst die Farben für die verschiedenen Projektphasen ändern, indem du Zellformatvorlagen in Excel verwendest.


Häufige Fehler und Lösungen

  • Fehlerhafte Daten: Überprüfe, ob deine Pivot-Tabelle korrekt ausgefüllt ist. Fehlende Daten können zu Fehlern im Gantt Chart führen.
  • VBA-Sicherheitswarnung: Stelle sicher, dass du Makros in Excel aktiviert hast. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen.
  • Falsch dargestellte Daten: Kontrolliere die Spaltenzuweisungen im VBA-Code, um sicherzustellen, dass sie mit deiner Pivot-Tabelle übereinstimmen.

Alternative Methoden

  • Excel Gantt Vorlage: Du kannst auch vorgefertigte Excel Gantt Vorlagen nutzen, die dir eine schnelle Möglichkeit bieten, Gantt Charts zu erstellen, ohne VBA verwenden zu müssen.
  • Add-Ins für Gantt Charts: Es gibt verschiedene Excel-Add-Ins, die speziell für die Erstellung von Gantt Charts entwickelt wurden und eine benutzerfreundliche Oberfläche bieten.

Praktische Beispiele

  • Einfaches Gantt Chart: Verwende die Excel Gantt Vorlage, um ein einfaches Gantt Diagramm zu erstellen. Du kannst die Daten manuell eingeben und die Formatierung nach Bedarf anpassen.
  • Komplexeres Projekt: Nutze den oben beschriebenen VBA-Code, um ein dynamisches Gantt Chart zu erstellen, das sich automatisch aktualisiert, wenn du die Daten in deiner Pivot-Tabelle änderst.

Tipps für Profis

  • Dynamische Datenquelle: Verwende dynamische Bereiche in deiner Pivot-Tabelle, um sicherzustellen, dass dein Gantt Chart mit neuen Daten automatisch aktualisiert wird.
  • Benutzerformulare nutzen: Erstelle ein Benutzerformular, um die Auswahl der Detailansicht und der Projektphasen zu erleichtern. Dies erhöht die Benutzerfreundlichkeit erheblich.
  • Farben anpassen: Definiere Farbkonstanten im Code, damit die Anpassung der Farben für verschiedene Projektphasen einfach und schnell möglich ist.

FAQ: Häufige Fragen

1. Wie kann ich die Daten im Gantt Chart nachträglich ändern?
Du kannst die Daten in der Pivot-Tabelle ändern und das Makro erneut ausführen, um das Gantt Chart zu aktualisieren.

2. Ist VBA notwendig, um ein Gantt Chart in Excel zu erstellen?
Nein, du kannst auch eine Excel Gantt Vorlage verwenden, aber VBA bietet dir mehr Flexibilität und Automatisierungsmöglichkeiten.

3. Kann ich das Wochenende im Gantt Chart ausblenden?
Ja, du kannst den VBA-Code anpassen, um die Darstellung des Wochenendes zu steuern. Füge eine Bedingung hinzu, die die Wochenenddaten ausblendet.

4. Welche Excel-Version benötige ich für die VBA-Funktionalitäten?
Die meisten modernen Excel-Versionen unterstützen VBA, jedoch ist es am besten, Excel 2010 oder höher zu verwenden, um alle Funktionen vollständig nutzen zu können.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige