Rollierendes Diagramm? !

Hallo zusammen,
alle die monatlich, wöchentliche Diagramme erstellen dürfen ärgern sich vermutlich über das ständige Anpassen der Tabelle oder des Diagramms. Mich nervt es!
So siehts heute aus:
Spalte A: Monatsname
Spalte B: z.B. Umsatz
Die Spalten werden sukzessive ergänzt
Das Säulendiagramm zeigt den Umsatz der letzten 12 Monate. Kommt der neue Monat, werden die Daten ergänzt und die Datenquelle des Diagramms entsprechend manuell angepasst.

Wäre es nicht möglich das Diagramm so zu automatisieren, dass immer die letzten 12 Zeilen (oder Monate) berücksichtigt werden?

Viele Grüße vom Harald aus Wiesbaden

Hallo,
an dem Diagramm sehe ich keien Moeglichkeit. Aber an den Daten.
Du hast im Diagramm die Datenquelle eingetragen, Zelle von bis.

Wenn Du nun die neuen Daten an diesen Ort hinkopierst, nimmt das Diagramm auch diese Daten.
Nehmen wir mal an, auf einem Tabellenblatt sind die Daten fuer das Diagramm, und sie kommen von einem anderen Tabellenblatt. Dort markieren, hinkopieren.

Andere Methode
Auf diesem Tabellenblatt fuer das Diagramm koennte auch nur eine einzige Zahl geaendert werden, passend zur Zeilennummer der Quelldaten. Die weiteren Zellen enthalten eine Formel mit indirekt und der Zahl. So kannst Du den Bereich statt kopieren indirekt adressiert rueberholen.

Gruss Helmut

Grüezi Harald

alle die monatlich, wöchentliche Diagramme erstellen dürfen
ärgern sich vermutlich über das ständige Anpassen der Tabelle
oder des Diagramms. Mich nervt es!
So siehts heute aus:
Spalte A: Monatsname
Spalte B: z.B. Umsatz
Die Spalten werden sukzessive ergänzt
Das Säulendiagramm zeigt den Umsatz der letzten 12 Monate.
Kommt der neue Monat, werden die Daten ergänzt und die
Datenquelle des Diagramms entsprechend manuell angepasst.

Wäre es nicht möglich das Diagramm so zu automatisieren, dass
immer die letzten 12 Zeilen (oder Monate) berücksichtigt
werden?

Das kommt ein wenig auf deine Daten an.
Du kannst aber als Datenquelle einen dynamischen Bereichsnamen verwenden, der sich automatisch anpasst.

Schau dir mal die folgende Mappe näher an, da sind solche Beispiele mit drin:

http://users.quick-line.ch/ramel/Diagramme/Diagramm_…

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

das sieht gut aus
Hallo Thomas,
danke für das Beispiel. Das Arbeitsblatt „die 5 Letzten“ ist genau das was ich suchte. Ich werde mal versuchen das Macro zu übernehemen. Geht das mit „copy and paste“?

Gruß Harald

danke für das Beispiel. Das Arbeitsblatt „die 5 Letzten“ ist
genau das was ich suchte. Ich werde mal versuchen das Macro zu
übernehemen. Geht das mit „copy and paste“?

Hallo Harald,

das Blatt hat doch gar keine Makros, welches Blatt meinst du?

Makrocode kann man schon mit Copy und paste einfügen.
Kannst auch das Modul exportieren und dann in mappen nach Wunsch importieren.

gehe mal ins Modul von „VBA Auswahl“, schreibe mal oben „Option Explicit“ hin dann wird dir der Schreibfehler gemeldet. Nach Beseitigung dessen kommt dann der Fehldeklarationsfehler.

Falls du die Variante mal bauchen solltest, lösche den Code und nimm dort den nachfolgenden.
Wobei, alle Codezeilen die rngStart enthalten kannste auch weglassen.

Gruß
Reinhard

Option Explicit

Private Sub Worksheet\_Change(ByVal Target As Range)
Dim rngStart As Range
Dim i As Integer, Start As Integer, Ende As Integer
If Target.Address = "$D$2" Or Target.Address = "$D$3" Then
 Set rngStart = ActiveCell
 Start = ActiveSheet.Range("D2").Value
 Ende = ActiveSheet.Range("D3").Value
 For i = 1 To ActiveSheet.ChartObjects.Count
 ChartObjects(i).Activate
 ActiveChart.SetSourceData Source:=ActiveSheet.Range("A" & Start & \_
 ":A" & Ende), PlotBy:=xlColumns
 Next i
 rngStart.Select
End If
End Sub

Grüezi Harald

danke für das Beispiel. Das Arbeitsblatt „die 5 Letzten“ ist
genau das was ich suchte. Ich werde mal versuchen das Macro zu
übernehemen. Geht das mit „copy and paste“?

Es gibt in jenem Diagramm keinen Makro-Code; das ist nur über einen dynamischen Bereichsnamen gelöst, der sich an der Datenmenge orientiert.

Wenn Du exakt dne Bereich nennen kannst (oder eine Demo-Mappe auf einen Webspace hochladen), dann können wir die Formel und den Namen gemeinsam erstellen und Du kommst ganz ohne VBA-Programmierung aus (was in diesem Falle mit Kanonen auf Spatzen geschossen wäre - obschon man dem Spatzen so natürlich auch beikommt :wink:)

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Grüezi Thomas,

ich habe in den Codes gesehen daß du die entweder reinkopiert hast oder auf die Schnelle gebastelt hast, mal Option Explicit mal nicht usw.
Was in Tabelle2 schief lief ist klar, müssen wir gar nicht drüber reden.

Wodrüber ich grüble ist das mit Activecell. WARUM selektierst du die, ist doch eh nur D2 oder D3 und ist doch wurscht ob danach je nach Einstellung nach rechts links oder sonstwohin gehüpft wird nach der Eingabe.

Jetzt frage ich mich warum du das eingebaut hast im Code.
Gibt es da mir unbekannte Gründe dafür das zu tun?

Daß wir beide Select nur dann einstzen wenn es unbedingt nötig ist ist mir klar, grad deshalb rätsle ich ja rum.

Gruß
Reinhard

Grüezi Reinhard

ich habe in den Codes gesehen daß du die entweder reinkopiert
hast oder auf die Schnelle gebastelt hast, mal Option Explicit
mal nicht usw.
Was in Tabelle2 schief lief ist klar, müssen wir gar nicht
drüber reden.

Das mit Option Excplicit ist korrekt, das steht heute in der Regel immer mit drin und verhinder zuverlässig solchen Bockmist… :frowning:

Wodrüber ich grüble ist das mit Activecell. WARUM selektierst
du die, ist doch eh nur D2 oder D3 und ist doch wurscht ob
danach je nach Einstellung nach rechts links oder sonstwohin
gehüpft wird nach der Eingabe.

Jetzt frage ich mich warum du das eingebaut hast im Code.
Gibt es da mir unbekannte Gründe dafür das zu tun?

Daß wir beide Select nur dann einstzen wenn es unbedingt nötig
ist ist mir klar, grad deshalb rätsle ich ja rum.

Hast Du mal einen Haltepunkt gesetzt und bist dann mit F8 den Code durchgegangen? :wink:

Im Verlauf des Codes wird in beiden Fällen das Diagramm selektiert und dann die einzelnen Datenreihen desselben manipuliert. Um den User nicht zu verwirren setze ich am Ende die Markierung wieder zurück an die Ausgangsposition. Ohne zu selektieren geht das nicht.

Klar man könnte auch ohne Markierung des Diagramms die Datenquellen der Reihen verändern - aber darum geht/ging es bei dem Code nicht. Er sollte nur als Anregung und Alternaive zu verstehen sein um zu zeigen wie einfach ein dynamisches Diagramm *ohne* VBA-Code zu erreichen ist (mehr als abschreckendes beispiel also…:wink:).

Danke aber für deinen Hinweis - ich habe den Code nun angepasst und werde die Datei neu hochladen.
(…vielleicht sollte ich sie eh mal überarbeiten und ‚runderneuern‘ sowie mit einigen Kommentaren versehen…).

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Grüezi Thomas,

Jetzt frage ich mich warum du das eingebaut hast im Code.
Gibt es da mir unbekannte Gründe dafür das zu tun?

Daß wir beide Select nur dann einstzen wenn es unbedingt nötig
ist ist mir klar, grad deshalb rätsle ich ja rum.

Hast Du mal einen Haltepunkt gesetzt und bist dann mit F8 den
Code durchgegangen? :wink:

nö, faule Socke bin :smile: Mir fiel nur die Schreibweise auf, habe das dann korrigiert…
Und du hast ja gesehen, ich habe ja das Select im korrigierten Code dringelassen. Wußte halt nicht warum.

Im Verlauf des Codes wird in beiden Fällen das Diagramm
selektiert und dann die einzelnen Datenreihen desselben
manipuliert.

Alles klar.

Klar man könnte auch ohne Markierung des Diagramms die
Datenquellen der Reihen verändern - aber darum geht/ging es
bei dem Code nicht.

*lächel* Ich weiß nicht ob dir „K.Rola“ was sagt, sie hätte mich bei Hans H. ganz schön zusammengestaucht wenn ich Diagramme selektieren würde :smile:

Er sollte nur als Anregung und Alternaive
zu verstehen sein um zu zeigen wie einfach ein dynamisches
Diagramm *ohne* VBA-Code zu erreichen ist (mehr als
abschreckendes beispiel also…:wink:).

Jetzt fängst du auch noch an wie der Anfrager. Er will bei einem Beispiel ohne VBa den Code kopieren, jetzt kommst du und sagst der Code bei einem Beispiel mit Vba diente nur dazu zu zeigen daß es auch ohne VBa geht:smile:
Okay, blau ist rot und plus ist minus, darf ich mitspielen? *gg*

Gruß
Reinhard

Grüezi Reinhard

Jetzt frage ich mich warum du das eingebaut hast im Code.
Gibt es da mir unbekannte Gründe dafür das zu tun?

Hast Du mal einen Haltepunkt gesetzt und bist dann mit F8 den
Code durchgegangen? :wink:

nö, faule Socke bin :smile: Mir fiel nur die Schreibweise auf,
habe das dann korrigiert…

Tssss! :wink:

Und du hast ja gesehen, ich habe ja das Select im korrigierten
Code dringelassen. Wußte halt nicht warum.

Im Verlauf des Codes wird in beiden Fällen das Diagramm
selektiert und dann die einzelnen Datenreihen desselben
manipuliert.

Alles klar.

Klar man könnte auch ohne Markierung des Diagramms die
Datenquellen der Reihen verändern - aber darum geht/ging es
bei dem Code nicht.

*lächel* Ich weiß nicht ob dir „K.Rola“ was sagt, sie hätte
mich bei Hans H. ganz schön zusammengestaucht wenn ich
Diagramme selektieren würde :smile:

K.Rola liest hier ja IMO nicht mit und ber Herber wird dieser Beitrag nicht gespiegelt - so gesehen bin ich aus dem Schneider… :wink:

Er sollte nur als Anregung und Alternaive
zu verstehen sein um zu zeigen wie einfach ein dynamisches
Diagramm *ohne* VBA-Code zu erreichen ist (mehr als
abschreckendes beispiel also…:wink:).

Jetzt fängst du auch noch an wie der Anfrager. Er will bei
einem Beispiel ohne VBa den Code kopieren, jetzt kommst du und
sagst der Code bei einem Beispiel mit Vba diente nur dazu zu
zeigen daß es auch ohne VBa geht:smile:

Dem Anfrager ist kein Vorwurd zu machen; er kann nicht wissen, was da alles in die Mappe reingepackt worden ist. Das Teil ist auch gewachsen im Laufe der Zeit - einheitlicih ist da kaum was.
Daher wärs wohl auch gut diese mal zu überarbeiten…

Okay, blau ist rot und plus ist minus, darf ich mitspielen?
*gg*

Immer gerne:

0 ist FALSE
1 ist TRUE
-1 ist TRUE :wink:


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

ein Beispiel
Hallo Thomas,
vielen Dank für deine Demo. Das Tabellenblatt „die letzten 5“ trifft es genau. Leider ist es mir nicht gelungen die Tabelle nachzustellen. Die Anwendung des Datenbereiches und die Selektion nach den letzen 5 ist für mich nicht erkennbar. Bitte hilf mir weiter. Ich habe dazu ein Beispiel erstellt. Wie schon im ersten Post erwähnt sollten es jeweils die letzten 12 Monate sein.
http://rapidshare.de/files/46084240/dynamischer_Char…

Viele Grüße aus vom Harald aus Wiesbaden.

Hallo Thomas,
vielen Dank für deine Demo. Das Tabellenblatt „die letzten 5“
trifft es genau. Leider ist es mir nicht gelungen die Tabelle
nachzustellen. Die Anwendung des Datenbereiches und die
Selektion nach den letzen 5 ist für mich nicht erkennbar.
Bitte hilf mir weiter. Ich habe dazu ein Beispiel erstellt.
Wie schon im ersten Post erwähnt sollten es jeweils die
letzten 12 Monate sein.
http://rapidshare.de/files/46084240/dynamischer_Char…

Hallo Harald,

für die Datenquellen hat Thomas die Namen Spalte_A2, Spalte_B2,Spalte_C2 vergeben.

Spalte_A2:
=BEREICH.VERSCHIEBEN(‚letze 5 Werte‘!$A$3;ANZAHL2(‚letze 5 Werte‘!$A:blush:A)-5;0;5;1)

Völlig ungetestet müßte das bei dir so aussehen:

Spalte_A2:
=BEREICH.VERSCHIEBEN(‚Tabelle1‘!$A$2;ANZAHL2(‚Tabelle1‘!$A:blush:A)-12;0;12;1)

A41:A51 löschen sonst läuft das bei „Absatz“ falsch. Oder so:

Spalte_A2:
=BEREICH.VERSCHIEBEN(‚Tabelle1‘!$A$2;ANZAHL2(‚Tabelle1‘!$B:blush:B)-12;0;12;1)

Gruß
Reinhard

Grüezi Harald

vielen Dank für deine Demo. Das Tabellenblatt „die letzten 5“
trifft es genau. Leider ist es mir nicht gelungen die Tabelle
nachzustellen. Die Anwendung des Datenbereiches und die
Selektion nach den letzen 5 ist für mich nicht erkennbar.

Ja, in der Mappe sind so einige Dinge drin, die sich dann halt vermischen - wie auch schon in meiner Antwort an reinhard gesagt.

Bitte hilf mir weiter. Ich habe dazu ein Beispiel erstellt.
Wie schon im ersten Post erwähnt sollten es jeweils die
letzten 12 Monate sein.

http://rapidshare.de/files/46084240/dynamischer_Char…

Ich habe dir das Diagramm dupliziert und dann die Bereichsnamen eingefügt und entsprechend den Datenreihen zugewiesen.
Schau dir diese Zuweisung im Diagramm selbst an.

Die Definitin der Bereiche findest Du dann unter Einfügen/Namen/Definieren - schau dir auch diese näher an.
Die Definition richtet sich immer nach dem aktuellen Tagesdatum - jeder 1. des Monats wird die Darstellung entsprechend angepasst.

Hier der Linkd zum Download von meinem WebSpace:

http://users.quick-line.ch/ramel/Demo-Daten/Harald_D…

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Danke schön :smile:) owT
Sagte ich doch: owT :wink: