Microsoft Excel

Herbers Excel/VBA-Archiv

Diagramme erweitern via VBA

Betrifft: Diagramme erweitern via VBA von: NoPa
Geschrieben am: 20.11.2014 13:24:05

Hallo zusammen,

ich habe mal beispielhaft eine Tabelle und das dazugehörige Diagramm hoch geladen!

https://www.herber.de/bbs/user/93910.xlsm

Eigentlich sind es Insgesamt 30 verschieden Tabellen und Diagramme übereinander in einer Mappe, die ich mittels Makro um ein Monat erweitern will!

Kann mir da jemand bitte helfen!?

Danke
Gruß
Norbert

  

Betrifft: AW: Diagramme erweitern via VBA von: Beverly
Geschrieben am: 20.11.2014 18:06:16

Hi Borbert,

was versteht du konkret unter "um einen Monat erweitern"?


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Diagramme erweitern via VBA von: NoPa
Geschrieben am: 21.11.2014 07:29:59

ich muss ein Monat dazu und den ältesten Monate löschen!

in diesem Fall den Oktober weg und den März dazu!
reich dir das!?

Gruß
Norbert


  

Betrifft: AW: Diagramme erweitern via VBA von: Beverly
Geschrieben am: 21.11.2014 08:57:25

Hi Norbert,

verstehe ich das richtig: dein Diagramm soll immer 5 Monate darstellen? In deiner Mappe gibt es keine Daten vom März.
Sollen die Spalten für den zu löschenden Monat im Tabellenblatt gelöscht werden oder sollen sie erhalten bleiben?


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Diagramme erweitern via VBA von: NoPa
Geschrieben am: 21.11.2014 10:50:41

Hi,

ja erstmal immer 5 Monate!
Später sollen evtl alle Monate bestehen bleiben aber immer nur 5 eingeblendet bleiben!
Da häte ich schon gedacht dass ich mit Gruppen arbeite!?

Diese Mappe wird via Makro mit Werten befüllt, die ich in einer andren Mappe drin habe!

Gruß
Norbert


  

Betrifft: AW: Diagramme erweitern via VBA von: Beverly
Geschrieben am: 21.11.2014 10:56:06

Hi Norbert,

in der hochgeladenen Mappe stehen - wie schon angemerkt - keine Daten für März drin, folglich kann das Diaramm auch nicht erweitet werden.


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Diagramme erweitern via VBA von: NoPa
Geschrieben am: 21.11.2014 12:26:10

Hier noch mal mit März!
https://www.herber.de/bbs/user/93939.xlsm

Norbert


  

Betrifft: AW: Diagramme erweitern via VBA von: Beverly
Geschrieben am: 21.11.2014 14:39:06

Hi Norbert,

Sub WertebereichVerschieben()
    Dim lngReihe As Long
    Dim strXWerte As String
    Dim strYWerte As String
    Dim strStart As String
    Dim intStart As Integer
    Dim intEnde As Integer
    With ActiveSheet.ChartObjects(1).Chart
        strXWerte = Split(.SeriesCollection(1).Formula, ",")(1)
        lngReihe = Range(strXWerte).Rows(3).Row
        intEnde = IIf(IsEmpty(Cells(lngReihe, Columns.Count)), _
            Cells(lngReihe, Columns.Count).End(xlToLeft).Column, Columns.Count)
        strStart = Range(strXWerte).Cells(1).Address
        intStart = Range(strXWerte).End(xlToRight).Column
        strXWerte = Cells(Range(strXWerte).Rows(1).Row, intStart).Address & _
            ":" & Cells(Range(strXWerte).Rows(3).Row, intEnde).Address
        .SeriesCollection(1).XValues = Range(strXWerte)
        For lngReihe = 1 To .SeriesCollection.Count
            strYWerte = Split(.SeriesCollection(lngReihe).Formula, ",")(2)
            strYWerte = Cells(Range(strYWerte).Row, intStart).Address & ":" _
                & Cells(Range(strYWerte).Row, intEnde).Address
            .SeriesCollection(lngReihe).Values = Range(strYWerte)
        Next lngReihe
    End With
End Sub
Mit diesem Code wird die Beginn-Spalte des Wertebereichs des Diagramms immer um EINEN Abschnitt (also um 1 Monat) nach rechts verschoben. Die Ende-Spalte des Wertebereichs ist immer der am weitesten rechts eingetragene Monat, gleichgültig wie viele Monate vorhanden sind.


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Diagramme erweitern via VBA von: NoPa
Geschrieben am: 24.11.2014 06:58:07

Hi,

das ist ja (fast) wunder bar! ;)
Ich hatte es nämlich ausprobiert! und jedes mal beginnt das Diagramm beim zweiten Monat!?
Hat also nur 4 Monate angezeigt!
Ich glaube wir haben doch etwas an einander vorbei gesprochen?! :(
Jedes Monat das in Excel in der Tabelle ist, soll im Diagramm dar gestellt werden! Unabhängig davon wie viele Monate es sind!
Wie ist das möglich!

Kannst Du bitte zum besseren Verständnis jeden einzelnen Schritt in der Anweisung kurz beschrieben! Ich möchte ja schließlich von Dir lernen!?

Danke
Gruß
Norbert


  

Betrifft: AW: Diagramme erweitern via VBA von: Beverly
Geschrieben am: 24.11.2014 08:34:56

Hi Norbert,

Zitat aus deinem 2. Beitrag:

  • ich muss ein Monat dazu und den ältesten Monate löschen!

    in diesem Fall den Oktober weg und den März dazu!
    reich dir das!?


  • und das ist etwas anderes als ALLE Monate darzustellen, wenn ein neuer hinzukommt (dein letzter Beitrag). Was soll es denn nun wirklich sein? Bevor ich einen anderen Code schreibe, solltest du dir bitte selbst Klarheit schaffen.


    Außerdem (Zitat aus deinem letzten Beitrag):

  • Ich hatte es nämlich ausprobiert! und jedes mal beginnt das Diagramm beim zweiten Monat!?
    Hat also nur 4 Monate angezeigt!


  • Das kann ich nicht nachvollziehen. Wenn der Code ausgeführt wird, beginnt jede Datenreihe in Spalte G und geht bis Spalte Z (= FÜNF Monate). Wird ein neuer Monat hinzugefügt (der z.B. bis Spalte AD geht), dann wird der Datenbereich für alle Datenreihen verschoben und geht von K bis AD (=FÜNF Monate).


    GrußformelBeverly's Excel - Inn


      

    Betrifft: AW: Diagramme erweitern via VBA von: NoPa
    Geschrieben am: 24.11.2014 13:00:18

    So, ich habe dir jetzt die komplette Datei um ein Monat erweitert!
    So wie ich es mir vorstelle! Ein neues Monat dazu und das veraltetes weg.
    D.h. im Diagramm sollen die aktuellen Monate November bis März angezeigt werde!


    Im Modul 1 ist dein Code den du mir geschrieben hast!

    https://www.herber.de/bbs/user/93980.xlsm

    jetzt lass ihn mal laufen und schau dir das erste Diagramm an.
    Das Diagramm zeigt nur Dezember bis März an, und den Nov. nicht!?

    Ich habe es öfters ausprobiert, funktioniert tut es nur dann, wenn ich das ganze nach einer bestimmten Reihenfolge laufen lasse!
    Erst ein Monat erweitern, den Code laufen lasse und dann den alten Monat entfernen! Nur so zeigt mir das Diagramm das an was ich will!? ist das nicht komisch!?

    zusätzlich würde ich den Code (in grün) erweitern um alle Diagramme zu ändern!
    leider haut das nicht bei allen Diagrammen hin! bei den "Summen" übernimmt er mir die "Überschrift - Zeilen" nicht!

    Schau dir das mal bitte an!
    Vielleicht bin ich ja doch zu doof dafür!? :(

    Danke Gruß
    Norbert


      

    Betrifft: AW: Diagramme erweitern via VBA von: Beverly
    Geschrieben am: 24.11.2014 14:29:11

    Hi Norbert,

    ich hatte dich weiter oben gefragt, ob die SPALTEN des ältesten Monats gelöscht werden - deine Antwort war darauf: Nein, eventuell später. Logischerweise bin ich (und selbstverständlich mein Code) davon ausgegangen, dass KEINE Spalten gelöscht werden, sondern nur der DATENBEEREICH des Diagramms bis zum nächsten Montat, der rechts angefügt wird, verschoben werden soll - UND GENAU DAS MACHT MEIN CODE IN DEINER ZUERST HOCHGELADENEN ARBEITSMAPPE WENN MAN RECHTS EINEN WEITEREN MONAT HINZUFÜGT! Sorry, aber so kann ich nicht arbeiten, wenn einerseits Forderungen gestellt werden und wenn diese erfüllt wurden, plötzlich andere stellen und dann vorwerfen, dass es nicht funktioniert.


    GrußformelBeverly's Excel - Inn


      

    Betrifft: AW: Diagramme erweitern via VBA von: NoPa
    Geschrieben am: 25.11.2014 09:09:48

    Hi Karin

    1. Danke ich Dir für deine sehr gute Arbeit.
    2. ich denke dass ich durch mein falsches Verständnis von der Formulierung der Ausdrücke, ein zu großes Durcheinander rein gebraucht habe!
    3. Für dieses Durcheinander möchte ich mich entschuldigen!
    4. Habe ich eine gewisse Reife um als "Fordender" keine „Vorwürfe zu machen“, weil ICH schließlich was von DIR will/brauche.
    5. ich habe nur etwas aus meinem Unwissen festgestellt und erfragt! Vorwürfe oder gar Kritik würden sich wirklich anders anhören!

    Was hältst du davon, wenn ich dir das Ganze noch mal so formuliere, wie ich mir das vorgestellt habe!?
    Wenn nicht bin ich dir auch nicht böse drum!

    Dann mach ich einen neuen Beitrag auf und stell die Frage nochmal richtig!?
    Dann habe ich wenigstens was dazu gelernt.

    Gruß
    Norbert


      

    Betrifft: AW: Diagramme erweitern via VBA von: Beverly
    Geschrieben am: 25.11.2014 09:39:26

    Hi Norbert,

    1. überlege dir genau, was du tatsächlich erreichen willst und stelle erst dann deine Frage(n)
    2. beschreibe das Problem so, dass ein Außenstehender nachvollziehen kann, was du meinst, am besten an einem ganz konkreten Beispiel mit Beschreibung des Vorher- und Nachher-Zustandes
    3. gehe auf Rückfragen detaillert ein
    4. setze nicht voraus, dass man als Helfer den Inhalt aller vorangegangenen Beiträge des Fragestellers noch im Gedächtnis hat, denn als Helfer ist man nicht nur an einem Thread beteiligt

    Auf dieser Basis können wir weitermachen.


    GrußformelBeverly's Excel - Inn


      

    Betrifft: AW: Diagramme erweitern via VBA von: NoPa
    Geschrieben am: 25.11.2014 11:19:46

    Ok, danke für Deine Tipps und Deine weitere Zusammenarbeit mit mir!

    Also hier der Ausgangszustand!
    Momentan werden die Monate Oktober bis Februar in den Tabellen und in den Diagrammen dargestellt.
    Ist:
    https://www.herber.de/bbs/user/94012.xlsm

    Nach meiner manuellen Monatserweiterung wurde in den Tabellen der Oktober gelöscht und der März hinzu gefügt.
    Die Diagramme sollen jetzt mit deinem Code so angepasst werden, dass die Daten aus den Tabellen abgebildet / erweitert werden!
    Sprich: die Datenreihen der Diagramme sollen an die Tabellen angepasst werden. Die Datenreihen sollen also immer ab dem ersten Monat (ab Spalte B) bis zum letzten Monat in den Tabellen definiert werden.

    Soll:
    https://www.herber.de/bbs/user/94013.xlsm

    Ich hoffe du kannst es nachvollziehen!?

    Danke
    Gruß
    Norbert


      

    Betrifft: AW: Diagramme erweitern via VBA von: Beverly
    Geschrieben am: 25.11.2014 12:27:23

    Hi Norbert,

    Sub WertebereichVerschieben()
        Dim lngReihe As Long
        Dim strXWerte As String
        Dim strYWerte As String
        Dim strStart As String
        Dim intEnde As Integer
        Dim chrDia As ChartObject
        intEnde = IIf(IsEmpty(Cells(6, Columns.Count)), _
            Cells(6, Columns.Count).End(xlToLeft).Column, Columns.Count)
        For Each chrDia In ActiveSheet.ChartObjects
            With chrDia.Chart
                strXWerte = Split(.SeriesCollection(1).Formula, ",")(1)
                lngReihe = Range(strXWerte).Rows(3).Row
                strStart = Range(strXWerte).Cells(1).Address
                strXWerte = Cells(Range(strXWerte).Rows(1).Row, 2).Address & _
                    ":" & Cells(Range(strXWerte).Rows(3).Row, intEnde).Address
                .SeriesCollection(1).XValues = Range(strXWerte)
                For lngReihe = 1 To .SeriesCollection.Count
                    strYWerte = Split(.SeriesCollection(lngReihe).Formula, ",")(2)
                    strYWerte = Cells(Range(strYWerte).Row, 2).Address & ":" _
                        & Cells(Range(strYWerte).Row, intEnde).Address
                    .SeriesCollection(lngReihe).Values = Range(strYWerte)
                Next lngReihe
            End With
        Next chrDia
    End Sub
    
    In deinem 2. Diagramm hat eine Datenreihe einen Fehler im Zellbezug für den Namen - den musst du korrigieren sonst kann der Code nicht durchlaufen.


    GrußformelBeverly's Excel - Inn


     

    Beiträge aus den Excel-Beispielen zum Thema "Diagramme erweitern via VBA"