Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1076to1080
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige