Diagramm aus Variablen

Liebe www-Gemeinde,
in Excel 2002/2003 hatte ich ein Makro, das aus Bereichen bestimmter Suchkriterien zuverlässig Diagramme erstellte. Wir haben nun vereinzelt (ein Mitarbeiter hat ein neues Betriebssystem mit Office 2010 aufgespielt bekommen) Excel 2010 im Einsatz, und ich bekomme das Makro nicht zum laufen.
Für die Bereiche ermittle ich eine Anfangzszeile ZA und eine Endzeile ZE. Ausserdem eine Spalte SX für die Abszissenwerte (horizontale Achse) und eine Spalte SY für die Ordinatenwerte (Y-Achse). Das Diagramm soll auf ein neues Blatt, daher bekommt das Quelldatenblatt den Namen BlattName.
Mit Variablentypen Range bin ich nicht wirklich weit gekommen, daher habe ich wieder versucht mit String-Variablen zu arbeiten.

Ich ermittle also den X-Wertebereich als:
BereichX = „’“ & BlattName & „’!“ & „$C“ & SX & „$R“ & ZA & „:blush:C“ & SX & „$R“ & ZE
und den Y-Wertebereich so:
BereichY = „’“ & BlattName & „’!“ & „$C“ & SY & „$R“ & ZA & „:blush:C“ & SY & „$R“ & ZE
Dann sezte ich zusammen:
DiaBereich = BereichX & „;“ & BereichY

Wenn ich den String für DiaBereich ausgeben lasse sieht das (soweit ich das beurteilen kann) so aus, wie wenn ich die selben Bereiche markiere, ein Makro aufzeichne und so ein Diagramm einfüge.

Das Diagramm versuche ich zu erzeugen mit:
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
ActiveChart.SetSourceData Source:=Range(DiaBereich)

Aber das haut nicht hin. Beim DiaBereich gibt es wohl Probleme.
Kann mit bitte jemand helfen?

Vielen lieben Dank.
MfG MwieMichel

Hallo zusammen,

also wahrscheinlich war Excel 2002/03 gutmütiger und hat mein Gefummel geschluckt, was 2010 mit einem Fehler quittiert. Nach einigem hin und her bin ich auf eine Lösung gestoßen, die so wahrscheinlich in 2002 auch schon die schönere Lösung gewesen wäre.

  1. Merke BlattName (String); Datensätze als Basis für Diagramm
  2. Ermittle Zeilenanfang ZA, und -Ende ZE als Long (Wertebereich)
  3. Ermittle X-Spalte SX (fix), und Y-Spalte (SuchText) SY als Long
  4. Setze Bereiche XBereich und YBereich als Range mit:
    Set BereichX = Sheets(BlattName).Range(Cells(ZA, SX), Cells(ZE, SX))
    Set BereichY = Sheets(BlattName).Range(Cells(ZA, SY), Cells(ZE, SY))
  5. Verbinde Bereiche (Range) mit:
    Set BereichXY = Union(BereichX, BereichY)
  6. Füge neues Blatt ein, benenne um und verschiebe an Ende
  7. Füge Diagramm ein mit
    ActiveSheet.Shapes.AddChart.Select
    ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
    ActiveChart.SetSourceData Source:=BereichXY
    With ActiveChart
    .HasTitle = True
    .ChartTitle.Characters.TEXT = SuchText
    .Axes(xlCategory).Select
    .SeriesCollection(1).Name = SuchText
    End With

Bitte um Entschuldigung, wenn ich nicht alle Details ausgerollt habe. Würde mich über Anregungen freuen.
MfG MwieMichel