Excel 2000 - Daten aus Diagramm herausl[e|ö]sen

Dieses Thema Excel 2000 - Daten aus Diagramm herausl[e|ö]sen im Forum "Microsoft Office Suite" wurde erstellt von MasterQ, 23. Jan. 2009.

Thema: Excel 2000 - Daten aus Diagramm herausl[e|ö]sen Hallo, ich habe hier eine Excel-Datei, deren Inhalt aus einen einzelnen Diagramm besteht. Es exisitiert keine...

  1. Hallo,

    ich habe hier eine Excel-Datei, deren Inhalt aus einen einzelnen Diagramm besteht. Es exisitiert keine Tabelle. Unter Datenquelle ist ein externer Link auf eine andere Excel-Datei eingetragen, die mir nicht vorliegt.

    Öffne ich die Datei, wird wie üblich gefragt, ob die angezeigten Daten mit den Inhalten der anderen Datei aktualisiert werden sollen. Ich muss auf nein klicken, denn die Datei liegt mir ja nicht vor. Das Diagramm wird vollständig angezeigt und wenn ich auswähle, dass die Daten auch als Labels angezeigt werden sollen, dann tut's.

    Nur, wie kriege ich die im Diagramm angezeigten und intern vorliegenden Daten wieder in eine Tabelle? Ich müsste die Daten weiter verarbeiten habe aber so nur Zugang zur grafischen Darstellung. Ich brauch die Daten in einer Tabelle!

    Wie krieg ich sowas hin?

    Gruß

    MQ
     
  2. Meines Wissens gar nicht. Ich lasse mich aber gern aufklären, falls jemand dazu doch eine Lösung hat. ;)
     
  3. Also was mit Sicherheit gehen muss, ist sich das Fileformat von Excel reinpfeiffen und sich ein kleines Progrämmle schreiben.

    Ist mir aber zu aufwendig. ;)

    Anderes denkbares Szenario ist der Export über eine modernere Excelversion in die offenen Officeformate und dann den Zugriff. Ich habe aber keine solchen Möglichkeiten.

    Schade, dass die einfache Kopierpaste nicht geht.

    Aber vielleicht geht es auch über ein VB-Script o.ä. ? VB kann ich aber auch nicht!

    Bin für alle Hinweise bzw. fertigen Lösungen dankbar!

    MQ
     
  4. Ich gebe Dir Recht, dass sich die Daten irgendwo im Hintergrund verstecken müssen. Aber Fakt ist leider, dass man daran mit normalen Bordmitteln offensichtlich nicht herankommt. Bin mal gespannt, ob jemand noch eine Idee dazu hat.

    Gruss, Trispac
     
  5. Hallo MasterQ,

    dann probier mal das nachfolgende Makro aus.

    Gruß Matjes :)
    Code:
    Option Explicit
    
    '*** Aus einem aktiven Diagramm, zu dem die Werte nicht mehr vorhanden sind,
    '*** die Werte auslesen und in einer neuen Tabelle sichtbar/bearbeitbar machen
    '*** !!! Diagramm muß bei Aufruf des Makros aktive sein !!!
    '*** Ausgabe erfolgt immer 2-spaltig für x und y Wert.
    '*** Über der y-Spalte wird der Spaltenname ausgegeben
    '***
    '*** Ein Datum bzw. Urhzeit wird als double-Zahl, so wie sie in der Series-Collection
    '*** enthalten ist ausgegeben. Die Spalte muß im Nachgang von Hand als Datum bzw. Uhrzeit
    '*** formatiert werden
    
    
    Sub DiagrammWerteAuslesen()
    
     Dim sh As Object, ws As Worksheet, ch As Chart
     Dim lAnzSeriesCollection As Long
     Dim lZeile As Long, lSpalte As Long, x As Long
     Dim SeriesWert As Variant
    
     Set sh = ActiveSheet
    
     If Not PruefeAktivesBlattIstDiagramm(sh) Then Exit Sub
     Call ProtokollblattEinfuegen(sh, ws)
     Set ch = sh
     lAnzSeriesCollection = ch.SeriesCollection.Count
     lSpalte = 0
     For x = 1 To lAnzSeriesCollection
      lSpalte = lSpalte + 1
      lZeile = 1
      For Each SeriesWert In ch.SeriesCollection(x).XValues
       lZeile = lZeile + 1
       ws.Cells(lZeile, lSpalte).Value = SeriesWert
      Next
     ->*** y-Werte
      lSpalte = lSpalte + 1
      lZeile = 1
      ws.Cells(lZeile, lSpalte).Value = ch.SeriesCollection(x).Name
      ws.Cells(lZeile, lSpalte).Font.Bold = True
      For Each SeriesWert In ch.SeriesCollection(x).Values
       lZeile = lZeile + 1
       ws.Cells(lZeile, lSpalte).Value = SeriesWert
      Next
     Next
     
    AUFRAEUMEN:
     Set sh = Nothing: Set ws = Nothing: Set ch = Nothing
    End Sub
    '+++++++++++++++++++++++++++++++++++++++++++++++++++++
    Private Function PruefeAktivesBlattIstDiagramm(sh As Object) As Boolean
     If sh.Type <> 4 Then MsgBox Aktives Blatt ist kein Diagramm.: Exit Function
     PruefeAktivesBlattIstDiagramm = True
    End Function
    '+++++++++++++++++++++++++++++++++++++++++++++++++++++
    Private Function ProtokollblattEinfuegen(sh As Object, ws As Worksheet)
    ->Blatt für Werte nach dem Diagramm einfügen
     Set ws = sh.Parent.Worksheets.Add(After:=sh)
     ws.Name = DiagrammWerte_ & Format(Now(), yyyymmdd_hhnnss)
    End Function
     
  6. Also wenn das funzt bin ich schwer beeindruckt, Matjes! :1
     
  7. Funzt (fast) prima. Es meckert zwar, dass kein Diagramm ausgewählt sei, Aktives Blatt ist kein Diagramm. obwohl es eines ist, doch durch auskommentieren der Abfrage läuft die Routine durch und liefert auch die (korrekten) Werte. mml

    Danke

    MQ
     
  8. Hallo MasterQ,

    ich hab das Makro so modifiziert, das es prüft, ob ein Diagramm selektiert/aktiviert ist. Dabei ist es jetzt egal, ob das Diagramm eingebettet ist oder ein Diagrammblatt. Die Daten des selektierten Charts werden ausgegeben. So kann man auf einem Blatt mit mehreren eingebetteten Diagrammen eines selektieren.

    Gruß Matjes :)
    Code:
    Option Explicit
    
    '*** Aus einem aktiven Diagramm, zu dem die Werte nicht mehr vorhanden sind,
    '*** die Werte auslesen und in einer neuen Tabelle sichtbar/bearbeitbar machen
    '*** !!! Diagramm muß bei Aufruf des Makros aktive sein !!!
    '*** Ausgabe erfolgt immer 2-spaltig für x und y Wert.
    '*** Über der y-Spalte wird der Spaltenname ausgegeben
    '***
    '*** Ein Datum bzw. Urhzeit wird als double-Zahl, so wie sie in der Series-Collection
    '*** enthalten ist ausgegeben. Die Spalte muß im Nachgang von Hand als Datum bzw. Uhrzeit
    '*** formatiert werden
    
    
    Sub DiagrammWerteAuslesen()
    
     Dim sh As Object, ws As Worksheet, ch As Chart
     Dim lAnzSeriesCollection As Long
     Dim lZeile As Long, lSpalte As Long, x As Long
     Dim SeriesWert As Variant
    
     Set sh = ActiveSheet
    
     If Not PruefeAktivesDiagramm(ch) Then Exit Sub
     Call ProtokollblattEinfuegen(sh, ws)
     lAnzSeriesCollection = ch.SeriesCollection.Count
     lSpalte = 0
     For x = 1 To lAnzSeriesCollection
      lSpalte = lSpalte + 1
      lZeile = 1
      For Each SeriesWert In ch.SeriesCollection(x).XValues
       lZeile = lZeile + 1
       ws.Cells(lZeile, lSpalte).Value = SeriesWert
      Next
     ->*** y-Werte
      lSpalte = lSpalte + 1
      lZeile = 1
      ws.Cells(lZeile, lSpalte).Value = ch.SeriesCollection(x).Name
      ws.Cells(lZeile, lSpalte).Font.Bold = True
      For Each SeriesWert In ch.SeriesCollection(x).Values
       lZeile = lZeile + 1
       ws.Cells(lZeile, lSpalte).Value = SeriesWert
      Next
     Next
     
    AUFRAEUMEN:
     Set sh = Nothing: Set ws = Nothing: Set ch = Nothing
    End Sub
    '+++++++++++++++++++++++++++++++++++++++++++++++++++++
    Private Function PruefeAktivesDiagramm(ch As Chart) As Boolean
     Set ch = Nothing
     Set ch = ActiveChart
     If ch Is Nothing Then MsgBox Kein Diagramm aktiviert/selektiert.: Exit Function
     PruefeAktivesDiagramm = True
    End Function
    '+++++++++++++++++++++++++++++++++++++++++++++++++++++
    Private Function ProtokollblattEinfuegen(sh As Object, ws As Worksheet)
    ->Blatt für Werte nach dem Diagramm einfügen
     Set ws = sh.Parent.Worksheets.Add(After:=sh)
     ws.Name = DiagrammWerte_ & Format(Now(), yyyymmdd_hhnnss)
    End Function
     
Die Seite wird geladen...

Excel 2000 - Daten aus Diagramm herausl[e|ö]sen - Ähnliche Themen

Forum Datum
Sverweis und #NV (Excel 2000) Microsoft Office Suite 11. Mai 2013
Frage Excel 2000 Windows XP Forum 5. Mai 2012
Excel 2000 Liste Daten Gültigkeit erweitern Microsoft Office Suite 21. Dez. 2011
excel-Grafik ecxel 2000 Windows XP Forum 27. Nov. 2011
Excel 2000 Formel möglich Microsoft Office Suite 25. Apr. 2011