Clever-Excel-Forum

Normale Version: Datenreihe bei Diagramm hinzufügen mit ActiveCell.Offset
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Leute, 


folgender Code funktioniert soweit:

ActiveSheet.ChartObjects("Diagramm 2").Activate
    ActiveChart.SeriesCollection.Add _
    Source:=ActiveCell.Offset(0, 1).Range("A1:A11")


Nun liegt das Diagramm aber nicht im gleichen Tabellenblatt, deshalb würde ich gern so was in der Art schreiben: 

    ActiveSheet.ChartObjects("Diagramm 2").Activate
    ActiveChart.SeriesCollection.Add _
    Source:=Sheets("Tabelle1").ActiveCell.Offset(0, 1).Range("A11:B11")

Leider funktioniert das so nicht, könnt ihr mir einen Tipp geben wie ich das hin bekomme? 

Vielen Dank und Grüße
ActiveChart.SeriesCollection.Add _
Source:=Tabelle1.Range("A1:A11")

Falls der Codename Tabelle1 ist
Hallo,

wenn ich mich nicht täusche, macht das ActiveCell, wenn Du dich nicht auf dem Tabellenblatt befindest, Probleme. Notlösung: Versuche das Tabellenblatt zu aktivieren und springe danach wieder auf das bisherige Tabellenblatt zurück.
Hi

richtig, ActiveCell gibt Probleme wenn man nicht in einer Tabelle ist, sondern im Diagramm.
Da gibt es keine Active Zelle!  Zweites Problem, die Quell Tabelle ist nicht konkret benannt.
Laeuft das Makro ab, wenn man die Tabelle wechselt, stimmt wahrscheinlich nichts mehr.

Ich würde die Adressierung aendern in:   Range("A1:A11").Offset(0, 1) 
DABEİ İST ABER EİNE BESONDERHEİT ZU BEACHTEN

ActiveCell.Offset(0, 1).Range("A1:A11")  heisst im Klartext, zuerst den Offset(0, 1) von der Activen Zelle.
Bei A1 verschiebt man den Bereich nur auf B1:B11  Steht der Cursor aber nicht auf A1 muss man das Bedenken. 
Am einfachsten mit Select schauen welcher Bereichj selektiert wird. 

mfg Gast 123
Hallo Gast,

die Tabelle war benannt, jedoch kann man auf einem anderen Blatt keine ActiveCell ansprechen, auch wenn man nicht in einem Diagramm ist. Man muss das vielleicht auch deutlicher schreiben. Ist man in einem Diagramm, welches sich auf einem Tabellenblatt befindet, bzw. hat dieses aktiviert, dann wird die zuletzt aktive Zelle zurückgegeben. Nur wenn das Diagramm ein eigenständiges Diagrammblatt ist, gibt es keine aktive Zelle.

Falls Du Dich mit der unzureichenden Benennung auf die Antwort von Storax beziehst
Source:=Tabelle1.Range("A1:A11")
Da geb ich Dir recht. Sheets("Tabelle1") muss nicht Tabelle1... sein.

Besser wäre wohl
Source:=Sheets("Tabelle1").Range("A11:B11")

oder wenn man von der aktiven Zelle des aktiven Blattes ausgehen will etwas in der Art:
Source:=Sheets("Tabelle1").Range(ActiveCell.Address).Offset(0, 1).Range("A11:B11")
(Das wäre dann Tappen im Dunkeln Smile

Oder man speichert die Adresse der aktiven Zelle beim Blattwechsel, z.B. Worksheet_Deactivate vom Blatt Tabelle1 ...
Grüß Euch,

tut mir leid das ich mich erst so spät wieder melde. Feedback muss schon sein, vor allem als Anfänger...
Erst mal vielen Dank für eure Hilfereichen Antworten!

Der Code von Storax war mir bekannt, nur erreiche ich damit leider nicht was ich will.
Was wollte ich? Auf dem Tabellenblatt 2 befindet sich mein Diagramm, auf Tabellenblatt 1 sind meine Daten. Meine Daten werden per Marko für eine Analyse neu hinzugefügt und sollten dann automatisch im Diagramm auf Tabellenblatt 2 landen. Das wollte ich mit ActiveCell erreichen. Meine Notlösung war jetzt, dass das Makro das Diagramm aus dem Tabellenblatt 2 ausschneidet, in das Tabellenblatt 1 kopiert und dann kann ich ja ohne Problem mit ActiveCell die Datenreihe hinzufügen.(Natürlich muss das Diagramm zum Schluss wieder auf Tabellenblatt 2 landen..)

So wie ich das jetzt verstanden hab, gibt es keine "einfache" Lösung.

Source:=Sheets("Tabelle1").Range(ActiveCell.Address).Offset(0, 1).Range("A11:B11")
PS: Ich finde es ziemlich schwer, das Problem so zu beschreiben, das es jeder versteht. Ist es dann wahrscheinlich sinnvoller eine Datei hoch zu laden oder?
Hallo,

wo hast Du den Code stehen? In einem Tabellenmodul oder in einem allgemeinen Modul? Es wäre nicht schlecht, wenn Du eine kleine Beispieldatei hier hochladen würdest.
Hallöchen,

wenn die Daten per Makro hinzugefügt werden, dann brauchst Du Dir doch nur die entsprechende Zelle zu merken und diese kannst Du dann für das Diagramm verwenden.
Ich nehme an, dass das Einfügen und das Aktualisieren des Diagramms in einem Rutsch passiert?

Außerdem könnte man überlegen, ob sich das Diagramm nicht von Tabelle1 aus ohne Blattwechsel aktualisieren lässt.

Das Prinzip sollte auch ohne Musterdatei erklärbär sein Smile
Grüß Euch,

Danke für die Hilfreichen Tipps, ohne euch hätte ich das nicht geschafft. Eine Datei lade ich jetzt nicht mehr hoch, weil ich es so hinbekommen habe wie ich wollte.

Gruß Dirk
Hi Dirk,

damit Usern, die ähnliche Probleme haben und über die Suchfunktion auf diesen Thread gestoßen sind, eine Lösung angeboten werden kann, wäre es sehr hilfreich, wenn du uns deine funktionierende Lösung posten würdest. Hier reicht wohl das Makro.
Seiten: 1 2