Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
936to940
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
936to940
936to940
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

dynamische Datenquelle für Grafik

dynamische Datenquelle für Grafik
30.12.2007 14:21:40
Stefan
Hallo,
für eine Grafik in Excel braucht eine Datenquelle, die aber von Excel mit z. B: $A$2:$B$5 dargestellt wird.
Ich benötige aber statt der starren Datenquelle eine dynamische, wobei der Beginn immer bei $A$2 liegt, aber das Ende bei $B$10 oder auch $B$21 liegen kann.
Mit folgendem Code will das aber nicht klappen. Mein Ansatz war dabei wie bei Schleifen auch, die letzte beschriebene Zelle als Endpunkt zu verwenden. Nur bei Grafiken geht das anscheinden nicht.
ActiveSheet.ChartObjects("Diagramm 17").Activate
ActiveChart.ChartArea.Select
ActiveChart.SetSourceData Source:=Sheets("diagramm").Range("a2:a21").End(xlUp).Row, PlotBy:=xlRows
Hat von Euch jemand so was schon mal gemacht.
Andere Einstellungen bei Grafiken wie z. B: Scalemin bzw. Scalemax kann man auch über eine Excelzelle steuern.
Danke für Eure Hilfe
Gruß
Stefan

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: dynamische Datenquelle für Grafik
30.12.2007 14:26:45
Björn
Hallo Stefan,
der Ausdruck Sheets("diagramm").Range("a2:a21").End(xlUp).Row gibt nur eine Zahl wieder, aber kein Range.
Versuch's doch mal mit Source:=Sheets("diagramm").Range("a2:a" & Sheets("diagramm").Range("a21").End(xlUp).Row)
Viele Grüße
Björn

AW: dynamische Datenquelle für Grafik
30.12.2007 14:45:08
Beverly
Hi miteinander,
auf Select und Activate kann in VBA zu 99% verzichtet werden, deshalb ist folgende Codezeile ausreichend

ActiveSheet.ChartObjects("Diagramm 1").Chart.SetSourceData Source:=Sheets("diagramm").Range("a2:a" & Sheets("diagramm").Range("a21").End(xlUp).Row)


________________________________________

Anzeige
AW: dynamische Datenquelle für Grafik
31.12.2007 17:03:38
Stefan
Hallo zusammen,
Danke für die schnelle Antwort.
Leider klappt aber keine der beiden Makros. Ich werde mich wohl nochmal in Geduld üben müssen und etwas rumprobieren.
Ich wünsche Euch einen guten Rutsch und ein gesundes und erfolgreiches Jahr 2008
Gruß
Stefan

AW: dynamische Datenquelle für Grafik
31.12.2007 17:20:00
Björn
Hallo Stefan,
anbei mal eine Musterdatei: https://www.herber.de/bbs/user/48733.xls
Auf dem Blatt Diagramm kannst Du in Spalte A Werte ergänzen oder löschen. Dann auf das Blatt Tabelle 1 wechseln und über Extras -> Makro -> Makros... das Makro Tabelle1.test ausführen.
Viele Grüße
und guten Rutsch
Björn

Anzeige
AW: dynamische Datenquelle für Grafik
31.12.2007 18:19:00
Beverly
Hi Stefan,
vielleicht solltest du mal deine Arbeitsmappe hochladen, sodass man nachprüfen kann, weshalb es bei dir nicht funktioniert - mein Code funktioniert jedenfalls in meinem Beispiel, aber jeder Nachbau ist nicht identisch mit dem Original und kann nicht alle Bedingungen berücksichtigen, da sie möglicherweise nicht bekannt sind.
In deinem ersten Beitrag hattest du geschrieben, dass dein Datenbereich Zellen aus Spalte A und B umfasst, dein geposteter Code berücksichtigt aber nur Spalte A. Vielleicht ist das ja dir Ursache und der Code müsste so heißen

ActiveSheet.ChartObjects("Diagramm 1").Chart.SetSourceData Source:=Sheets("diagramm").Range("A2:B" & Sheets("diagramm").Range("A21").End(xlUp).Row)


Bis später,
Karin

Anzeige
AW: dynamische Datenquelle für Grafik
01.01.2008 07:59:00
Stefan
Hallo zusammen und ein gutes neues Jahr,
ich habe hier mal eine Beispieldatei reingestellt. Bei mir geht es um ein Kreisdiagramm, was zwar nicht relevant sein wird, aber ich benötige 2 Spalte für die Daten. Das denke ich, ist der springende Punkt.
Mit Eurem Code komme ich leider nicht weiter, obwohl er in der mir zugesandten Beispieldatei super funktioniert.
https://www.herber.de/bbs/user/48743.xls
Vielleicht fällt Euch noch etwas ein, wie man das hinbekommt.
Gruß
Stefan

AW: dynamische Datenquelle für Grafik
01.01.2008 10:17:00
Beverly
Hi Stefan,
in deiner Arbeitsmappe hat das Diagramm einen anderen Namen als der im Code angegebene. Außerdem sind es Spalte C und D. Beides musst du schon anpassen, da es anders logischerweise nicht funktionieren kann.
Falls du nur 1 Diagramm im Tabellenblatt hast, dann kannst du auch anstelle .ChartObjects("Diagramm 3"). schreiben .ChartObjects(1).

Die Datei https://www.herber.de/bbs/user/48744.xls wurde aus Datenschutzgründen gelöscht


Bis später,
Karin

Anzeige
AW: dynamische Datenquelle für Grafik
01.01.2008 12:21:18
Stefan
Hallo Karin,
das die Spalten nicht immer mit meinem Original zusammenpassen stimmt schon, aber Originale stellt man auch nicht ins Internet.
Wenn du bei der mir zugemailten Datei jetzt mal 1 oder 2 Werte weglässt, entsteht oben im Kreisdiagramm so ein hässliches 0% und je nach Menge der gelöschten Werte mehrere Linien.
Das wollte ich wegbekommen.
Gruß
Stefan

AW: dynamische Datenquelle für Grafik
01.01.2008 12:55:00
Beverly
Hi Stefan,
Originale muss man auch nicht unbedingt ins INet stellen, aber man sollte zumindest nicht dauernd die Spaltenbezeichnung und andere Bedingungen wechseln, weil die Helfer dann einerseits ständig den Code ändern müssen und andererseits dann nicht nachvollziehen können, weshalb er in deinem Original nicht funktioniert.
Irgendwie scheinst du dir auch anderweitig ständig zu widersprechen:
Ich benötige aber statt der starren Datenquelle eine dynamische, wobei der Beginn immer bei $A$2 liegt, aber das Ende bei $B$10 oder auch $B$21 liegen kann.
Der Beginn sollte also immer bei A2 sein und nun mit einem Mal nicht mehr? Du solltest dir schon vorher richtig überlegen, was du eigentlich erreichen willst.
Wenn die leeren Zellen am Anfang der Wertetabelle nicht berücksichtig werden sollen, dann kannst du in einer Schleife über die Zellen laufen und die Zelle mit dem ersten Wert "" als Startzeile nehmen.
Bis später,
Karin

Anzeige
AW: dynamische Datenquelle für Grafik
02.01.2008 06:01:00
Stefan
Hallo Karin,
deine Nachricht bringt mich leider nicht weiter.
Um die hässlichen Striche in der Grafik zu vermeiden, werde ich einfach eine andere Grafik wählen, den mit anderen Grafiken klappt es .
Nochmals Danke für deine Hilfe.
Gruß
Stefan

AW: dynamische Datenquelle für Grafik
02.01.2008 21:25:27
Björn
Hallo Stefan,
eine Möglichkeit die ich noch gefunden habe, besteht darin zuerst die Zeilen zu sortieren. Falls das nicht den Rest Deiner Tabelle beeinträchtigt, geht das über das folgende Makro:

Sub diagramm()
Sheets("diagramm").Range("C3:D" & Sheets("diagramm").Range("D21").End(xlUp).Row).Select
Selection.Sort Key1:=Range("D3"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
ActiveSheet.ChartObjects("Diagramm 3").Chart.SetSourceData Source:=Sheets("diagramm").Range( _
"C3:D" & Sheets("diagramm").Range("D21").End(xlUp).Row)
End Sub


Viele Grüße und ein gutes 2008
Björn

Anzeige
AW: dynamische Datenquelle für Grafik
03.01.2008 07:57:00
Stefan
Hallo zusammen,
das mit dem Zeilen sortieren geht leider nicht, da sonst andere Werte durcheinander kommen.
Den Code für die Grafikaktualisierung werde ich aber schon noch einbauen in mein Makro.
Nochmals Danke für Eure Hilfe und ein gutes, gesundes und erfolgreiches Jahr 2008
Gruß
Stefan

AW: dynamische Datenquelle für Grafik
03.01.2008 12:32:26
Björn
Hallo Stefan,
dann bleibt aus meiner Sicht nur noch die Möglichkeit, das Diagramm von den Daten zu entkoppeln.
Das Beispiel dazu findest hier: https://www.herber.de/bbs/user/48767.xls
Viele Grüße
Björn

Anzeige
AW: dynamische Datenquelle für Grafik
02.01.2008 21:44:00
Beverly
Hi Stefan,
ich meinte, dass der Code so aussehen sollte

Sub diagramm()
Dim inZeile As Integer
With Worksheets("diagramm")
inZeile = 1
Do
inZeile = inZeile + 1
If .Cells(inZeile, 3)  "" Then Exit Do
Loop
End With
ActiveSheet.ChartObjects(1).Chart.SetSourceData Source:=Sheets("diagramm").Range("C" &  _
inZeile & ":D" & Sheets("diagramm").Range("C21").End(xlUp).Row)
End Sub


Bis später,
Karin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige