Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Diagramm als Bild einfügen, Diagramm löschen

Diagramm als Bild einfügen, Diagramm löschen
20.05.2009 10:09:16
MBorn
Guten Morgen,
ich murkse an folgendem Problem:
1. Diagramm erzeugen
2. Diagramm als Bild (BMP oder was anderes) an anderer Stelle im Tabellenblatt einfügen
3. Ursprüngliches Diagramm löschen.
Der Teil "Diagramm an anderer Stelle als Bild einfügen" funktioniert nicht.
Weiß jemand, was ich hier dran ändern muß?

Sub MakeDiagramm()
'Diagramm-Datenbereich auswählen
lcolumn = Range("Waa24").End(xlToLeft).Column
Range(Cells(24, 2), Cells(24, lcolumn)).Select
'Diagramm erzeugen, Linie
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range("Theater!$B$24:$AL$24")
ActiveChart.ChartType = xlLine
'Namen vergeben
ActiveChart.SeriesCollection(1).Name = "=Theater!$B$8"
'Legende löschen
ActiveChart.Legend.Delete
'Diagramm an anderer Stelle als Bild einfügen
For Each diagramm In Sheets("Theater").ChartObjects
ActiveSheet.ChartObjects(diagramm.Name).Activate
'ActiveChart.ChartArea.Select
Next
'    ActiveSheet.ChartObjects("Diagramm 23").Activate
'    ActiveChart.Parent.Delete
llcolumn = Range("Waa35").End(xlToLeft).Column - Range("B8")
Cells(72, llcolumn).Select
ActiveSheet.Paste
'Ursprüngliches Diagramm löschen
Dim lngZahl As Long
With ActiveSheet
If .ChartObjects.Count  0 Then
For lngZahl = .ChartObjects.Count To 1 Step -1
.ChartObjects(lngZahl).Delete
Next lngZahl
End If
End With
End Sub


Danke,
Born

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm als Bild einfügen, Diagramm löschen
20.05.2009 14:05:39
fcs
Hallo MBorn,
das Diagramm muss als Grafikdatei exportiert werden und dann wieder eingefügt.
Unter Excel 2003 sieht der Code etwa wie folgt aus.
Ob er so auch unter der 2007er-Version läuft?
Gruß
Franz

'Erstellt unter Excel 2003
Sub MakeDiagramm()
Dim wks As Worksheet, objChart As Chart, lcolumn As Long, llcolumn As Long
Dim DiagName As String
'Diagramm-Datenbereich auswählen
lcolumn = Cells(24, Columns.Count).End(xlToLeft).Column
Range(Cells(24, 2), Cells(24, lcolumn)).Select
Set wks = ActiveSheet
'Diagramm erzeugen, Linie
Application.Charts.Add
Set objChart = ActiveChart
objChart.Location Where:=xlLocationAsObject, Name:=wks.Name
Set objChart = wks.ChartObjects(wks.ChartObjects.Count).Chart
objChart.SetSourceData Source:=Range("Theater!$B$24:$AL$24")
objChart.ChartType = xlLine
'Namen vergeben
objChart.SeriesCollection(1).Name = "=Theater!R8C2"
'Legende löschen
objChart.Legend.Delete
'Diagramm als Grafik-Datei speichern
DiagName = ActiveWorkbook.Path & "\" & "TempDiagImage.jpg"
objChart.Export Filename:=DiagName, Filtername:="jpg"
'Diagramm an anderer Stelle als Bild einfügen
'Einfügezelle ermitteln
llcolumn = wks.Cells(35, wks.Columns.Count).End(xlToLeft).Column - wks.Range("B8")
wks.Cells(72, llcolumn).Activate
Cells(72, llcolumn).Select
'Bilddatei einfügen
ActiveSheet.Pictures.Insert (DiagName)
'Bilddatei wieder löschen
Kill DiagName
'Ursprüngliches Diagramm löschen
wks.ChartObjects(wks.ChartObjects.Count).Delete
End Sub


Anzeige
AW: Diagramm als Bild einfügen, Diagramm löschen
20.05.2009 22:12:28
Nepumuk
Hallo Franz,
in xl2007 gibt es die CopyPicture-Methode immer noch ;-)
Gruß
Nepumuk
AW: Diagramm als Bild einfügen, Diagramm löschen
25.05.2009 12:15:28
fcs
Hallo MBorn,
mit der Copy-Picture Methode wird es dann etwas einfacher. Etwa so:
Gruß
Franz

Sub MakeDiagramm2()
Dim wks As Worksheet, objChart As Chart, lcolumn As Long, llcolumn As Long
Dim DiagName As String
'Diagramm-Datenbereich auswählen
lcolumn = Cells(24, Columns.Count).End(xlToLeft).Column
Range(Cells(24, 2), Cells(24, lcolumn)).Select
Set wks = ActiveSheet
'Diagramm erzeugen, Linie
Application.Charts.Add
Set objChart = ActiveChart
objChart.Location Where:=xlLocationAsObject, Name:=wks.Name
Set objChart = wks.ChartObjects(wks.ChartObjects.Count).Chart
objChart.SetSourceData Source:=Range("Theater!$B$24:$AL$24")
objChart.ChartType = xlLine
'Namen vergeben
objChart.SeriesCollection(1).Name = "=Theater!R8C2"
'Legende löschen
objChart.Legend.Delete
'Diagramm als Bild kopieren
objChart.CopyPicture appearance:=xlScreen, Format:=xlPicture, Size:=xlScreen
'Diagramm an anderer Stelle als Bild einfügen
'Einfügezelle ermitteln
llcolumn = wks.Cells(35, wks.Columns.Count).End(xlToLeft).Column - wks.Range("B8")
wks.Cells(72, llcolumn).Activate
Cells(72, llcolumn).Select
'Bilddatei einfügen
ActiveSheet.Paste
End Sub


Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige