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

Datenquelle eines Diagramms...

Datenquelle eines Diagramms...
17.02.2005 12:41:17
Achim
Hallo Leute,
wie kann ich die Datenquelle, also den Zellbereich der Tabelle auslesen,
aus der das Diagramm gespeist wird? ich brauch das in der Form, dass ich
den Zellbereich mit Makro markieren kann, auch wenn er sich in einer anderen
Tabelle befindet als das Diagramm.
Gruß Achim

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenquelle eines Diagramms...
17.02.2005 23:48:51
Norman
Hi Achim,
Die Bereiche findest Du über:
sub DiagrammFormelnHolen()
Dim coitem As ChartObject
Dim cgitem As ChartGroup
Dim scitem As Series
For Each coitem In thisworkbook.worksheets("MeinSheet").ChartObjects
For Each cgitem In coitem.Chart.ChartGroups
For Each scitem In cgitem.SeriesCollection
If IsReadableFormula(scitem) Then
debug.print scitem.formula
End If
Next scitem
Next cgitem
Next coitem
End Sub
' Unschöner Workaround, muss mir irgendwann mal was besseres einfallen lassen...
' Funktioniert aber

Private Function IsReadableFormula(anything) As Boolean
On Error GoTo nopeNotReadable
Debug.Print anything.formula
IsReadableFormula = True
Exit Function
nopeNotReadable:
IsReadableFormula = False
End Function

Vielleicht reicht ja schon ein select mit der Formel, habe ich aber nicht getestet. Formatierung des Beispiel ist irgendwie hops, bekommste aber bestimmt selbst hin.
Beste Grüße
Norman
Anzeige
AW: Datenquelle eines Diagramms...
Achim
Hi,
danke, aber das liefert eine Formel, die so aussieht:
=SERIES(,Tabelle1!$A$1:$A$10,Tabelle1!$B$1:$B$10,1)
Damit kann ich aber nicht den Bereich in der Tabelle markieren.
Hast du noch weitere Tipps?
Gruß Achim
AW: Datenquelle eines Diagramms...
18.02.2005 00:44:26
Norman
Hi Achim,
=SERIES(,Tabelle1!$A$1:$A$10,Tabelle1!$B$1:$B$10,1) ist doch genau das, was Du brauchst, oder etwa nicht? Tabelle1!$B$1:$B$10 ist der Datenbereich, der Dich interessiert. Du müsstest also den String scannen (z.B. mittels instr nach dem zweiten Komma suchen, das Ende wäre dann das dritte Komma, dann alles mit Mid auslesen) und dann den Bereich markieren (Range("Tabelle1!$B$1:$B$10").Select).
Beste Grüße
Norman
Anzeige
AW: Datenquelle eines Diagramms...
Achim
Hi,
danke, aber das kann ich nicht, kannst du mir ein Codebeispiel geben?
Gruß Achim
AW: Datenquelle eines Diagramms...
20.02.2005 23:55:36
Norman
Hi Achim,
sorry, war heut unterwegs. Mach mal folgendes, dann klappts :) Bitte in ein Modul legen und dann in Deinen eigenen Routinen GetAreaFromSeries mit der Formel aufrufen. Test() erläutert, was Du dann noch machen musst. Pass auch bitte auf beim Kopieren des Codes, irgendwie landet hier hinter jedem exit ein Zeilenumbruf. Exit

Function muss natürlich zusammenstehen.
Gruß
Norman
Option Explicit

Sub test()
Dim s As String
s = "=SERIES(,Tabelle1!$A$1:$A$10,Tabelle1!$B$1:$B$10,1)"
Dim res As String
Dim resTable As String
res = GetAreaFromSeries(s, resTable)
Debug.Print res
If Len(res) > 0 Then
If Len(resTable) > 0 Then Sheets(resTable).Activate
Range(res).Activate
End If
End Sub


Function GetAreaFromSeries(s As String, ByRef resTable As String) As String
GetAreaFromSeries = ""
resTable = ""
Dim pos As Long
' Das erste Komma suchen
pos = InStr(s, ",")
If pos 
Function ' Irgendwas ist hier faul...
' Jetzt das 2. Komma holen
pos = InStr(pos, s, ",")
If pos 
Function ' Irgendwas ist hier faul...
' Ab pos + 1 ist der gesuchte Teil, jetzt brauchen wir auch noch das Ende
Dim endPos As Long
endPos = InStr(pos + 1, s, ",") ' Bitte hinter dem zuletzt gefundenen Komma anfange
If endPos 
Function ' Irgendwas ist hier faul...
Dim res As String
' ok, jetzt haben wir alles
res = Mid(s, pos + 1, endPos - pos - 1)
' Wenn ein Ausrufezeichen im Ergebnis vorhanden ist, dann holen wir auch noch die Tabelle
pos = InStr(res, "!")
If pos > 1 Then
resTable = Left(res, pos - 1)
End If
' Wennns die Daten aus ner anderen Datei kommen hast Du allerdings ein Problem :)
GetAreaFromSeries = res
' Fertig
End Function

Anzeige
AW: Datenquelle eines Diagramms...
Reinhard
Hi Norman,
kann die Zeilenumbrüche nicht nachvollziehen.
Gruß
Reinhard
Option Explicit

Sub test()
Dim s As String
s = "=SERIES(,Tabelle1!$A$1:$A$10,Tabelle1!$B$1:$B$10,1)"
Dim res As String
Dim resTable As String
res = GetAreaFromSeries(s, resTable)
Debug.Print res
If Len(res) > 0 Then
If Len(resTable) > 0 Then Sheets(resTable).Activate
Range(res).Activate
End If
End Sub


Function GetAreaFromSeries(s As String, ByRef resTable As String) As String
GetAreaFromSeries = ""
resTable = ""
Dim pos As Long
' Das erste Komma suchen
pos = InStr(s, ",")
If pos <= 0 Then Exit Function
' Jetzt das 2. Komma holen
pos = InStr(pos, s, ",")
If pos <= 0 Then Exit Function
' Ab pos + 1 ist der gesuchte Teil, jetzt brauchen wir auch noch das Ende
Dim endPos As Long
endPos = InStr(pos + 1, s, ",") ' Bitte hinter dem zuletzt gefundenen Komma anfange
If endPos <= 0 Then Exit Function
Dim res As String
' ok, jetzt haben wir alles
res = Mid(s, pos + 1, endPos - pos - 1)
' Wenn ein Ausrufezeichen im Ergebnis vorhanden ist, dann holen wir auch noch die Tabelle
pos = InStr(res, "!")
If pos > 1 Then
resTable = Left(res, pos - 1)
End If
' Wennns die Daten aus ner anderen Datei kommen hast Du allerdings ein Problem :)
GetAreaFromSeries = res
' Fertig
End Function

Anzeige
AW: Datenquelle eines Diagramms...
21.02.2005 00:45:47
Norman
Hi Reinhard,
bei mir waren auch keine drin, sah so aus wie bei Dir. Vielleicht liegts ja an meinem Firefox.
Gruß
Norman
OT Habe Mozilla 1.7 o.w.T.
Reinhard

289 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige