Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1392to1396
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

Diagramme erweitern via VBA

Diagramme erweitern via VBA
20.11.2014 13:24:05
NoPa
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

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramme erweitern via VBA
20.11.2014 18:06:16
Beverly
Hi Borbert,
was versteht du konkret unter "um einen Monat erweitern"?


AW: Diagramme erweitern via VBA
21.11.2014 07:29:59
NoPa
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

AW: Diagramme erweitern via VBA
21.11.2014 08:57:25
Beverly
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?


Anzeige
AW: Diagramme erweitern via VBA
21.11.2014 10:50:41
NoPa
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

AW: Diagramme erweitern via VBA
21.11.2014 10:56:06
Beverly
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.


AW: Diagramme erweitern via VBA
21.11.2014 14:39:06
Beverly
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.


Anzeige
AW: Diagramme erweitern via VBA
24.11.2014 06:58:07
NoPa
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

AW: Diagramme erweitern via VBA
24.11.2014 08:34:56
Beverly
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).


    Anzeige
    AW: Diagramme erweitern via VBA
    24.11.2014 13:00:18
    NoPa
    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

    Anzeige
    AW: Diagramme erweitern via VBA
    24.11.2014 14:29:11
    Beverly
    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.


    Anzeige
    AW: Diagramme erweitern via VBA
    25.11.2014 09:09:48
    NoPa
    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

    Anzeige
    AW: Diagramme erweitern via VBA
    25.11.2014 09:39:26
    Beverly
    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.


    Anzeige
    AW: Diagramme erweitern via VBA
    25.11.2014 11:19:46
    NoPa
    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

    Anzeige
    AW: Diagramme erweitern via VBA
    25.11.2014 12:27:23
    Beverly
    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.


    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige