PDA

Vollständige Version anzeigen : Bezug Diagramm


Ph2
07.07.2006, 16:42
HAllo Leute,

ich möchte folgendes machen:
den Bezug von Diagrammen ändern, damit sich das Diagramm auf die Daten in dem Fenster bezieht, indem es eingefügt wird. Gibt es eine Option, mit der "Datenquelle ActiveSheet" statt dem Tabellenblattnamen angegeben werden kann?
Es wäre hilfreich, da Tabellen schnell gleich aufgebaut sind aber die Bezugsklickerei nervt. Bisher habe ich es andersrum gemacht und die Daten in gleich aufgebaute Seiten mit Diagrammen kopiert. Aber das andere wäre geschickter.

Danke im Vorraus
Gruß Philipp

jinx
07.07.2006, 17:07
<font size="2" face="Century Gothic">Moin, Philp,

verwende einen Datenbereich, um Dein Diagramm zu erstellen, setze dann die Funktion Indirekt und z.B. ein DropDown nach Daten/Gültigkeit ein, um auf die einzelnen Tabellen umzuleiten und sverändere die Foirmeln entsprechend...</font>

Beverly
07.07.2006, 17:08
Hi Philipp,

mit diesem Code lässt sich ein vorgegebener Datenbereich dem eingebetteten Diagrammobjekt der aktiven Tabelle zuordnen

Sub Datenbereich_anpassen()
With ActiveSheet.ChartObjects(1).Chart
.SetSourceData Source:=ActiveSheet.Range("A1:B8"), PlotBy _
:=xlColumns
End With
End Sub

Der Code ist für einen in Spalten angeordneten Datenbereich.

Ph2
10.07.2006, 09:43
Morgen,
danke für die Antworten.
also diesen Teil von jinx habe ich nicht verstanden. "setze dann die Funktion Indirekt " wie geht das?
Danke auch für den Code, wenn ich den für alle Diagramme vordefiniert habe wäre das schon eine feine Sache. Aber wie kann ich einen unterbrochenen Datenberich definieren? z.B. ("G80:G89;S80:U89")

Gruß Philipp

Beverly
10.07.2006, 10:09
Ho Philipp,

du hast es eigentlich schon fast richtig gemacht - schreibe Range("G80:G89,S80:U89")

schef
11.07.2006, 13:20
Hi, Leute!
Ich habe ein ähnliches problem: Ich möchte den Datenbereich einer Tabelle durch eine variable ersetzen.
Also nicht
ActiveChart.SeriesCollection(anzahl).Values = _
"=(Daten!R3C6,Daten!R3C11,Daten!R3C16,Daten!R3C21,Daten!R3C26)"
sondern die zeile (also den 3er) durch den zeilenwert der gerade markierten zelle ersetzen. geht das? wenn nicht, dann vergesst das mit der zelle und es genügt eine vorher eingelesene variable als zeilenwert.

Beverly
11.07.2006, 13:36
Hi Du,

wenn du das Diagramm aktivierst, musst du eine Variable benutzen, da Diagramm und die Tabelle nicht gleichzeitig aktiv sein können

ActiveChart.SeriesCollection(anzahl).Values = _
"=(Daten!R" & Zeile & "C6,Daten!R" & Zeile & "C11,Daten!R" & Zeile _
& "C16,Daten!R" & Zeile & "C21,Daten!R" & Zeile & "C26)"