Office: Diagram per Makro: Balken im Datumformat

Helfe beim Thema Diagram per Makro: Balken im Datumformat in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, meine bisherigen kleinen Markobehafteten Vorhaben führten Dank der Unterstützung hier rasch zum gewünschten Erfolg. Das hat mich zu einer... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von woerli, 27. Oktober 2010.

  1. woerli Erfahrener User

    Diagram per Makro: Balken im Datumformat


    Hallo,

    meine bisherigen kleinen Markobehafteten Vorhaben führten Dank der Unterstützung hier rasch zum gewünschten Erfolg.
    Das hat mich zu einer neuen aufgabe inspiriert, für die ich aber wieder um Hilfe bitten möchte.

    Ich möchte per Makro wieder ein Diagramm erzeugen, dass für ein zeitlich begrenztes Projekt einzelne Aufgaben und ihren benötigten Zeitraum darstellt:
    - Balkendiagramm (horizontal)
    - Achsen im Datumsformat formatiert
    - die eigentlichen Balken von "Projektbeginn" bis jeweiliger Endwert eher usichtbar oder dezent formatiert
    - breit und deutlich sichtbar der "negative Fehler" des jeweiligen Balkens
    - Endbereich der Datenquele wird vorher bestimmt und steht in der Variablen "hzeilee" (Datenbereich also von Zeile 3 bis Zeile "hzeilee")

    Ich habe bisher Codefragmente:
    Code:
        ActiveSheet.Shapes.AddChart.Select
        ActiveChart.SetSourceData Source:=Range(Cells(3, 10), Cells(hzeilee, 12))
        ActiveChart.ChartType = xlBarClustered
            With ActiveSheet.ChartObjects(1).Chart
            .SeriesCollection(1).ErrorBar Direction:=xlY, Include:=xlMinusValues, _
                Type:=xlCustom, Amount:=Range(Cells(3, 12), Cells(hzeilee, 12)), _
                MinusValues:=Range(Cells(3, 12), Cells(hzeilee, 12))
           End With
     
  2. Beverly
    Beverly Erfahrener User
    Hi,

    ein paar Angaben, wo dein Problem liegt, wären sehr hilfreich gewesen. Außerdem wäre es gut, den Tabellenaufbau zu posten, oder eine Beispieldatei anzuhängen - was natürlich noch besser wäre.

    Bis später,
    Karin
     
    Beverly, 27. Oktober 2010
    #2
  3. woerli Erfahrener User
    Es gibt allgemein Zellen, wo z. B. der Anfang und das Ende eines Projektes festgelegt ist.

    Und eine Tabele mit verschiedenen Angaben (eine Aufgabe = eine Zeile).
    die wichtigsten Informationen sind in
    Zeile 10: Name der Aufgabe
    Zeile 11: Ende der Aufgabe als Datum (=Maximalwert des zugehörigen Balkens)
    Zeile 12: Dauer der Aufgabe in Tagen (=negativer Fehlerbalken des Balkens ...du erinnerst dich an den anderen Thread wo ich diese Funktion schon für etwas anderes erfragt hatte)

    Es soll nun per Knopfdruck ein Balkendiagramm erstellt werden,
    welches alle bisher in der Tabelle eingetragenen Aufgaben (die Funktion zur Ermittlung der Zeilen habe ich schon) als Balken darstellt.

    Beispiel siehe (links Diagramm, rechts Quelle)
    Diagram per Makro: Balken im Datumformat [​IMG]

    Hauptproblem ist das korrekte Verarbeiten von Daten im Datumsformat und das Formatieren des Diagramms. Wobei sich das"hübsch machen" dann sicher sonoch herausfinden lässt.
     
  4. woerli Erfahrener User

    Diagram per Makro: Balken im Datumformat

    Ich selbst bin inzwischen so weit gekommen (siehe Grafik).
    Was ich noch nicht hinbekommen habe ist die Formatierung der ErrorBars.

    Diagram per Makro: Balken im Datumformat [​IMG]

    Mit diesem Quelltext:
    Code:
        ActiveSheet.Shapes.AddChart.Select
        ActiveChart.SetSourceData Source:=Range(Cells(3, 10), Cells(hzeilee, 11))
        ActiveChart.ChartType = xlBarClustered
             With ActiveSheet.ChartObjects(1).Chart
            .SeriesCollection(1).ErrorBar Direction:=xlY, Include:=xlMinusValues, _
                Type:=xlCustom, Amount:=Range(Cells(3, 12), Cells(hzeilee, 12)), _
                MinusValues:=Range(Cells(3, 12), Cells(hzeilee, 12)) ', ColorIndex:=5
           End With
    
        'Titel festlegen
          ActiveChart.SetElement (msoElementChartTitleAboveChart)
          ActiveChart.ChartTitle.Text = "Balkenplan"
    
        'Abmessungen festlegen anhand des Umfangs
          ActiveSheet.ChartObjects(1).Width = Sheets("Allgemeine_Angaben").Cells(2, 9) / 2
          ActiveSheet.ChartObjects(1).Height = hzeilee * 20
    
        'Balken einfärben
    ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Interior.ColorIndex = 2
    
        'Legende entfernen
          ActiveChart.Legend.Select
          Selection.Delete
    
        ' Ausrichtung
         Dim eDia As ChartObject
         Set eDia = ActiveSheet.ChartObjects(1)
         With eDia
           .Left = Range("B17").Left
           .Top = Range("B17").Top
          End With
     
  5. Beverly
    Beverly Erfahrener User
    Hi,

    sorry, ich erkenne immer noch nicht, wo dein Problem liegt.

    Bis später,
    Karin
     
    Beverly, 27. Oktober 2010
    #5
  6. woerli Erfahrener User
    Das erste Bild zeigt wie ich es von Hand erstellt habe (dicke, rote ErrorBars).
    Das zweite Bild erzeugt mein Makro bis jetzt, leider finde ich keine Hinweise darauf, wie ich ErrorBars per Makro so formatieren kann.
    Das ist das Hauptproblem jetzt.

    Das Problem mit den Daten im Datumsformat konnte ich soweit durch passende Zellformatierungen umgehen.
     
  7. Beverly
    Beverly Erfahrener User
    Hi,

    in deinem 1. Diagramm sind meines Erachtens keine Fehlerindikatoren dargestellt sondern du verwendest ein gestapeltes Balkendiagramm. Andernfalls musst du schon mal beschreiben, WIE du sie so formatiert hast, damit man das nachvollziehen kann.

    Bis später,
    Karin
     
    Beverly, 28. Oktober 2010
    #7
  8. woerli Erfahrener User

    Diagram per Makro: Balken im Datumformat

    In dem ersten Diagramm habe ich
    - ein Balkendiagramm aus den Endwerten der jeweiligen Aufgaben erstellt
    - benutzerdefinierte Fehlerbalken (negativ, basierend auf der Dauer der Aufgabe) eingefügt
    - die Haupbalken hellgrau eingefärbt
    - die Fehlerbalken per Rechtsklick und "Fehlerbalken formatieren" eingefärbt und die Linienstärke auf 5 gesetzt

    Mit einem gestapelten Balkendiagramm müsste rein optisch das Selbe einfacher erreichbar sein, oder?

    EDIT:
    Ja natürlich geht das auch mit einem gestapelten Balkendiagramm..warum umständlich wenn es auch einfach geht...
    Wobei, so viel einfacher ist es nicht. Excel erkennt nicht automatisch die beiden Dateireihen für die Säulen, da eine Spalte im Datumsformat vorliegt und die zweite als Zahl (Tage).

    EDIT 2:
    Ich habs jetzt soweit hinbekommen, nur noch hübsch machen und Achsen formatieren fehlt. Ich füge die zweite Datenreihe getrent hinzu und dann klappt es. Hier der Code (es geht sicher eleganter, aber funktioniert):

    Code:
        Range(Cells(3, 10), Cells(hzeilee, 12)).Select
        ActiveSheet.Shapes.AddChart.Select
        ActiveChart.SetSourceData Source:=Range(Cells(3, 10), Cells(hzeilee, 11))
        ActiveChart.ChartType = xlBarStacked
            'Titel festlegen
          ActiveChart.SetElement (msoElementChartTitleAboveChart)
          ActiveChart.ChartTitle.Text = "Balkenplan"
        'Abmessungen festlegen anhand des Umfangs
          ActiveSheet.ChartObjects(1).Width = Sheets("Allgemeine_Angaben").Cells(2, 9) / 2
          ActiveSheet.ChartObjects(1).Height = hzeilee * 20
        'Balken einfärben
          ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Interior.ColorIndex = 2
        ActiveChart.PlotArea.Select
        ActiveChart.SeriesCollection.NewSeries
        ActiveChart.SeriesCollection(2).Name = ""
        ActiveChart.SeriesCollection(2).Values = Range(Cells(3, 12), Cells(hzeilee, 12))
            'Legende entfernen
          ActiveChart.Legend.Select
          Selection.Delete
        ' Ausrichtung
         Dim eDia As ChartObject
         Set eDia = ActiveSheet.ChartObjects(1)
         With eDia
           .Left = Range("B17").Left
           .Top = Range("B17").Top
          End With
    Vielen Dank!
     
  9. Beverly
    Beverly Erfahrener User
    Hi,
    Code:
        With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).ErrorBars
            .Border.LineStyle = xlContinuous
            .Format.Line.Weight = 5
            .Border.Color = 192
        End With
    
    Bis später,
    Karin
     
    Beverly, 28. Oktober 2010
    #9
  10. woerli Erfahrener User
    Beide Varianten funktionieren, allerdings mus sman erwähnen, das die Variante mit den Fehlerbalken etwas ungenau ist bei kleinen Zeitabschnitten. Zumindest muss man dort noch irgendwie die Kennzeichnung des minimalen Wertepunktes entfernen. Dies führt dazu, das die Linie etwas eher und schmaler beginnt und dann der eigentliche Fehlerbalken mit der gewählten Linienstärke dort ansetzt.
    Anbei die beiden Ergebnisse. Vielen Dank für die Hilfe und Hinweise! ..wieder was gelernt.

    Mit gestapelten Balkendiagramm:
    Diagram per Makro: Balken im Datumformat [​IMG]

    Mit Errorbars
    Diagram per Makro: Balken im Datumformat [​IMG]
     
  11. Beverly
    Beverly Erfahrener User
    Hi,

    das Erstellen und Formatieren des Diagramm kann man auch ohne Select ausführen - dein geposteter Code würde dann so aussehen:
    Code:
    With Worksheets("Allgemeine_Angaben")
        With .ChartObjects.Add(.Range("B17").Left, _
            .Range("B17").Top, .Cells(2, 9) / 2, hzeilee * 20).Chart
            .SetSourceData Source:=Range(Cells(3, 10), Cells(hzeilee, 11)), _
                PlotBy:=xlColumns
            .SeriesCollection.NewSeries
            .SeriesCollection(2).Name = ""
            .SeriesCollection(2).Values = Range(Cells(3, 12), Cells(hzeilee, 12))
            .ChartType = xlBarStacked
            .SetElement (msoElementChartTitleAboveChart)
            .ChartTitle.Text = "Balkenplan"
            .Legend.Delete
            .SeriesCollection(1).Interior.ColorIndex = xlNone
        End With
    End With
    
    Bis später,
    Karin
     
  12. woerli Erfahrener User
    Ich danke dir, wobei es dann das Worksheet "Aufgabenliste" wäre, im anderen finden sich nur Daten auf die Zugegriffen wird.

    Eine Fragehabe ich nun doch noch:
    Wie kann ich die Achse so formatieren, das mir an Stelle von "beliebigen" Datumsangaben die Monate (Jan., Feb., ..) von Anfang bis Ende angezeigt werden?
    Oder Monat + Jahr, Beispiel "Feb. 10".
     
  13. Beverly
    Beverly Erfahrener User

    Diagram per Makro: Balken im Datumformat

    Hi,

    ergänze den Code um diese Zeile:
    Code:
            .Axes(xlValue).TickLabels.NumberFormat = "MMM. DD"
    Das lässt sich übrigens mit dem Makrorekorder aufzeichnen, da es die selbe Aktion wie bei einer Zellformatierung ist.

    Bis später,
    Karin
     
  14. woerli Erfahrener User
    Hallo Karin,

    vielen Dank für deine Hilfe!
    In deinem letzten Post muss mann noch "DD" durch "YY" ersetzen.

    Hier habe ich mal die Mappe hinterlegt, es ist einfach als Vorlage für mich gedacht, quasi eine Art "ToDo-Liste":

    http://home.arcor.de/woerli/Aufgabenliste.xlsm

    Jetzt hat die Arbeitsmappe alle von mir gewünschten Grundfunktionen.
    Einzig ungünstig ist noch die Beschriftung der Value-Achse. Diese müsste noch mehr wie ein Kalender erscheinen, die jetzige Achsenbeschriftung durch Monatsangaben ist immernoch "willkürlich" und nicht konsistent, also Datenpunkte sind mit Monat + Jahr beschriftet, teilweise steht nun bei kurzen Vorgängen mehrmals "Okt. 10".
    Besser währe ein beschrifteter Bereich und als Hilfsraster die jeweiligen Tage (variiert ja von Monat zu Monat), aber das ist erstmal nicht so dramatisch.

    Viele Grüße und ein schönes Wochenende
    Holger
     
  15. Beverly
    Beverly Erfahrener User
    Hi Holger,

    Excel kennt standardmäßig nur eine äquidistante Skalierung der Größenachse und da die Monate eine unterschiedliche Anzahl an Tagen haben, lässt sich das so nicht darstellen. Wenn du eine anders geartete Darstellung haben möchtest, lässt sich das nur mithilfe einer Hilfsdatenreihe realisieren - der Aufwand dafür ist allerdings nicht unerheblich, da diese Hilfsdatenreihe den Diagrammtyp Punkt(XY) haben und deshalb auf die Sekundärachse gezeichnet werden muss.

    Bis später,
    Karin
     
Thema:

Diagram per Makro: Balken im Datumformat

Die Seite wird geladen...
  1. Diagram per Makro: Balken im Datumformat - Similar Threads - Diagram Makro Balken

  2. Diagram um 90° Drehen

    in Microsoft Excel Hilfe
    Diagram um 90° Drehen: Hallo zusammen, ich lasse mir per Makro ein Diagramm erstellen, das klappt alles soweit ganz gut, leider habe ich ein paar Probleme mit der Positionierung. Ich möchte das Diagram auf einer Seite...
  3. 2D Plotterdaten im Diagram darstellen

    in Microsoft Excel Hilfe
    2D Plotterdaten im Diagram darstellen: Hallo zusammen, ich müsste Daten über einen Plotter bearbeiten. Ich dachte ich mache das in Excel. Nun habe ich mir zum Testen 30 Punkte herausgesucht. Ich habe die Daten etwas aufbereitet (in...
  4. Gantt Diagram in KW statt in Tagen

    in Microsoft Excel Hilfe
    Gantt Diagram in KW statt in Tagen: Hallo Zusammen, ich habe ein Gantt Diagramm in Tagen und möchte es gerne in KWs haben. Leider sind die Formeln so verschachtelt, dass ich es trotz mehrstündiger Recherche und ausprobieren nicht...
  5. How to display a venn diagram with correct relations

    in Microsoft PowerPoint Hilfe
    How to display a venn diagram with correct relations: Hello, I try to create a venn diagram in power point. I do have the areas of the two circles as well as the area of the intersection between them (e.g. circle A is 10, circle B is 6 and...
  6. Text in Datentabelle unter Diagram drehen

    in Microsoft Excel Hilfe
    Text in Datentabelle unter Diagram drehen: Hallo, ich habe ein Diagramm mit einem Datentabelle darunter. Leider kann ich den Text der Datentabelle nicht drehen. Eine Achsenbeschriftung lässt sich problemlos drehen, aber nicht bei einer...
  7. Excel Diagram in Bereiche einteilen

    in Microsoft Excel Hilfe
    Excel Diagram in Bereiche einteilen: Hallo, ich habe folgendes Problem: Ich möchte für die Arbeit ein Diagramm erstellen. Dabei handelt es sich um bestimmte Messmittel mit einem bestimmten Messbereich, z.B. von 12-16mm. Von diesen...
  8. Wie kann ich meine Daten visualisieren ? Wie das Diagram richtig einrichten

    in Microsoft Word Hilfe
    Wie kann ich meine Daten visualisieren ? Wie das Diagram richtig einrichten: Hallo Forum, ich habe hier eine Zahlenreihe die wie folgt aufgebaut ist: Datum DevNr1 DevNr2 DevNr3 DevNr4 etc.... 16.11.2015 0 1 0...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden