Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Diagrammquelle

    Betrifft: Diagrammquelle von: Lutz
    Geschrieben am: 29.09.2003 12:23:48

    Hallöchen,

    brauch mal Hilfe, ich habe auf einem Tabellenblatt oder als neues Blatt ein Diagramm erstellt und möchte jetzt mit VBA die Datenquelle abfragen. Geht das überhaupt?

    Danke
    Lutz

      


    Betrifft: AW: Diagrammquelle von: Jan
    Geschrieben am: 29.09.2003 13:55:28

    Hallo Lutz,

    bin mir nicht sicher was Du mit "Datenquelle abfragen" meinst.

    Du kannst aber auf jeden Fall auf die Werte der Datenpunkte im Diagramm mit Hilfe eines Datenfeldes zurückgreifen.

    zum Beispiel:

    With ActiveChart.SeriesCollection(1)
    DArrayCosts = .Values
    DArrayTime = .XValues
    End With

    Gruß Jan


      


    Betrifft: AW: Diagrammquelle von: HerbertH
    Geschrieben am: 29.09.2003 13:59:37

    Hallo Lutz,
    ein Ansatz...
    den Diagrammnamen musst du anpassen...

    Sub datenquelle()
    On Error Resume Next
     Dim dbereich As String
      dbereich = Selection.Address
     ActiveSheet.ChartObjects("Diagramm 7").Activate
      With ActiveChart
         .ChartType = xlColumnClustered
         .SetSourceData Source:=Sheets("Tabelle5").Range(dbereich), _
          PlotBy:=xlColumns
       End With
    ActiveSheet.[g20].Select
    End Sub

    Gruß Herbert


      


    Betrifft: AW: Diagrammquelle von: Lutz
    Geschrieben am: 29.09.2003 16:53:21

    Danke erst Mal,

    aber ich hab mich wahrscheinlich nicht klar genug ausgedrückt. Ein Test soll durch ein Makro ausgewertet werden. Der Teilnehmer muss unter anderem ein Diagramm einfügen und das Makro soll überprüfen, ob der Datenbereich korrekt ist. Deshalb brauch ich den Datenbereich eines bereits erstellten Diagrammes, nicht unbedingt die Werte.

    Gruß Lutz


      


    Betrifft: AW: Diagrammquelle von: HerbertH
    Geschrieben am: 29.09.2003 18:39:34

    was verstehst du unter "ob der Datenbereich korrekt ist" ?
    wann ist der Datenbereich korrekt...? wenn ja, was soll dann geschehen...?
    wenn nein,was soll dann geschehen...?
    Darum habe ich ja geschrieben, daß es nur ein Ansatz ist,weil ich nicht
    wußte, in welchen Zusammenhang du das brauchst...
    gruß Herbert


      


    Betrifft: AW: Diagrammquelle von: Lutz
    Geschrieben am: 29.09.2003 18:55:18

    Der Getestete soll laut Aufgabenstellung für den Bereich z. B. A17:B23 ein Standarddiagramm erstellen. Das Makro muss feststellen, ob er den richtigen Bereich ausgewählt hat, oder einen anderen als den vorgegebenen Bereich - dann gibts Punktabzug. Einen Korrektor gibt es nicht an Ort und Stelle.

    Gruß Lutz


      


    Betrifft: AW: Diagrammquelle von: HerbertH
    Geschrieben am: 29.09.2003 21:17:53

    vielleicht hilft dir das weiter...
    hier werden die Daten aus dem Diagramm in die Tabelle
    geschrieben und mit dem Bereich A17:B23 verglichen...

    Sub daten_auslesen()
    Dim sh As Worksheet
    Dim sht As String
    Dim i As Variant
    Dim e As Object
    Dim z As Integer

    Set sh = ActiveSheet
      sht = ActiveSheet.Name
     sh.ChartObjects(1).Select
     
       i = UBound(ActiveChart.SeriesCollection(1).Values)
       sh.Cells(1, 1) = "Rubriken"
       
         With Worksheets(sht)
           .Range(.Cells(2, 2), _
           .Cells(i + 1, 1)) = _
           Application.Transpose _
           (ActiveChart.SeriesCollection(1).XValues)
         End With
         
         z = 2
         
    For Each e In ActiveChart.SeriesCollection
           sh.Cells(1, z) = e.Name
           
            With Worksheets(sht)
              .Range(.Cells(2, z), _
              .Cells(i + 1, z)) = _
              Application.Transpose(e.Values)
            End With
           
          z = z + 1
       Next
       
     sh.[g15].Select
     
     If sh.[a2] = sh.[a17] And sh.[a3] = sh.[a18] _
        And sh.[a4] = sh.[a19] And sh.[a5] = sh.[a20] _
        And sh.[a6] = sh.[a21] And sh.[a7] = sh.[a22] _
        And sh.[b2] = sh.[b17] And sh.[b3] = sh.[b18] _
        And sh.[b4] = sh.[b19] And sh.[b5] = sh.[b20] _
        And sh.[b6] = sh.[b21] And sh.[b7] = sh.[b22] Then
      MsgBox "Bereich stimmt"
      Else
      MsgBox "Bereich ist falsch !"
     End If
    End Sub

    Gruß Herbert


      


    Betrifft: AW: Diagrammquelle von: Lutz
    Geschrieben am: 29.09.2003 22:57:43

    Also das ist echt super - vielen Dank.
    Ich steig da durch, ich versprechs.

    Gruß Lutz