Jörg Lorenz: VBA *grrr

Beitrag lesen

Hi Markus,

Dim chtChart As Chart
        Set chtChart = Charts.Add

With Worksheets("Daten")

lngZ = .Cells(.Rows.Count, 1).End(xlUp).Row
              If lngZ > lngZeile Then lngZeile = lngZ

End With
            MsgBox (lngZ)

With chtChart
            .Name = chart_name
            .ChartType = xlXYScatterLines
            .SetSourceData Source:=Sheets("Daten").Range("B12:B" & lngZeile), _
                PlotBy:=xlColumns
            .HasTitle = True
            .ChartTitle.Text = "=Sheet1!R1C2"
            .Axes(xlCategory, xlPrimary).HasTitle = True
            .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Month"
            .Axes(xlValue, xlPrimary).HasTitle = True
            .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Sales"
            End With

damit wird ja ein neues Diagrammblatt erzeugt. Das heißt, wenn Du ein gleichnamiges bestehendes Blatt überschreiben möchtest, musst Du das alte Blatt löschen. Das kannst Du z. B. so:

For Each objDia In Sheets
    If objDia.Name = chart_name Then
        Application.DisplayAlerts = False
        objDia.Delete
        Application.DisplayAlerts = True
    End If
Next

Wenn Du von außen auf die Mappe zugreifst, musst Du nur noch die Objekte vervollständigen.

Viele Grüße

Jörg