Tipp 0260 Diagramme erstellen
Autor/Einsender:
Datum:
  Angie
25.04.2005 (Update)
Entwicklungsumgebung:   Excel 2000
In Excel können Diagramme entweder in Tabellen eingebettet (ChartObject) oder in eigenen Diagrammblättern (Chart) dargestellt werden. Das Einbetten der Diagramme in einem Tabellenblatt hat den Vorteil, dass sich das Diagramm zusammen mit den dazugehörigen Daten auf einem Blatt befindet.
Normalerweise wird ein eingebettetes Diagramm z. B. mit folgender Code-Zeile sowohl erstellt als auch gleich auf einem Tabellenblatt platziert:
 
Set objChart = ActiveWorksheet.ChartObjects.Add( _
      100, 50, 300, 200).Chart
 
Leider gibt es vor allem in Excel 97 Probleme mit den Schriftgrößen, der Legende u.v.m., wenn man dem eingebetteten Diagramm z. B. einen Titel hinzufügen möchte! Daher wurde in folgendem Beispiel das Diagramm erst nach dem Hinzufügen aller Angaben auf das angegebene Tabellenblatt verschoben.
In folgendem Beispiel wird der verwendete Bereich im Tabellenblatt ermittelt und für das Erstellen des Diagramms als Bereich (Range-Objekt) übergeben.
 
Public Sub CreateChartObjectRange()
  Dim wksData     As Worksheet
  Dim rngData     As Range

  Dim nRowsCnt    As Long
  Dim nColsCnt    As Integer

  Dim objChart    As Chart
  Dim objChartObj As ChartObject

  On Error GoTo err_CreateChart

  Set wksData = ThisWorkbook.Worksheets("Diagramm-Daten")

  With wksData
    nRowsCnt = .Cells(.Rows.Count, 1).End(xlUp).Row
    nColsCnt = .Cells(1, .Columns.Count).End(xlToLeft).Column

    Set rngData = .Range(.Cells(1, 1), .Cells(nRowsCnt, nColsCnt))
  End With

  Application.ScreenUpdating = False

  Set objChart = Application.Charts.Add
  With objChart
    .ChartType = xlLineMarkers
    .SetSourceData Source:=rngData, PlotBy:=xlColumns
    .HasTitle = True
    .ChartTitle.Text = "Diagramm erstellt mit dem" & _
                       vbLf & "Range-Objekt"

    .Location Where:=xlLocationAsObject, Name:=wksData.Name
  End With

  Set objChartObj = wksData.ChartObjects( _
        wksData.ChartObjects.Count)
  With objChartObj
    .Left = 10
    .Top = 50
    .Width = 300
    .Height = 200
  End With

  wksData.Range("A1").Select

exit_sub:
  On Error Resume Next
  Application.ScreenUpdating = True

  Set objChartObj = Nothing
  Set objChart = Nothing

  Set rngData = Nothing
  Set wksData = Nothing

  On Error GoTo 0
  Exit Sub

err_CreateChart:
  MsgBox "Fehler " & Err.Number & vbCrLf & Err.Description, _
        vbOKOnly + vbCritical
  Resume exit_sub
End Sub
 
Weitere Links zum Thema
Diagramm-Daten auslesen
Diagramme auf UserForm anzeigen

Windows-Version
95
98/SE
ME
NT
2000
XP
Vista
Win 7
Excel-Version
95
97
2000
2002 (XP)
2003
2007
2010


Download  (16,5 kB) Downloads bisher: [ 3302 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Montag, 27. Juni 2011