Diagramm als Grafik kopieren

Guten Abend

Das folgende Makro kopiert das Diagramm(1) in der Tabelle 1 und fügt es als Bild in die Tabelle ein.

Sub Diagr\_als\_Grafik\_kopieren()
With Worksheets("Tabelle1").ChartObjects(1)
 .CopyPicture Format:=xlPicture
End With
ActiveSheet.Paste
End Sub

Ich hätte das Makro gern so angepasst, dass irgendein angeklicktes Diagramm in einer x-beliebigen Tabelle kopiert wird, nicht ausschliesslich das Diagramm(1) in Tabelle 1.

Ich stelle mir das etwa so vor

 With Selected.Chart usw.
 oder: With ActiveChart usw.

Das haut aber nicht hin. Kann mir jemand von Euch sagen, wie ich das formulieren muss?

Vielen Dank für Eure Hilfe und viele Grüsse
Niclaus

Grüezi Niclaus

Ich hätte das Makro gern so angepasst, dass irgendein
angeklicktes Diagramm in einer x-beliebigen Tabelle kopiert
wird, nicht ausschliesslich das Diagramm(1) in Tabelle 1.

Ich stelle mir das etwa so vor

With Selected.Chart usw.
oder: With ActiveChart usw.

Das haut aber nicht hin. Kann mir jemand von Euch sagen, wie
ich das formulieren muss?

Versuche es mal so (in xl2007 hat das geklappt, wenn eine Zelle spezifisch angewählt worden ist:

 ActiveChart.ChartArea.Copy
 Range("A40").Select
 ActiveSheet.Pictures.Paste

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Versuche es mal so (in xl2007 hat das geklappt, wenn eine
Zelle spezifisch angewählt worden ist:

ActiveChart.ChartArea.Copy
Range(„A40“).Select
ActiveSheet.Pictures.Paste

Salü Thomas

Vile dank. - Ich ha ds makro ä so gschriebe:

Sub test()
ActiveChart.ChartArea.Copy
 Range("A40").Select
 ActiveSheet.Pictures.Paste
End Sub

De iberchum ich ä Fehlermeldig
Laufzeitfehler ‚91‘: Objektvariable oder With-Blockvariable nicht festgelegt.

Liebi grüess
Niclaus

Bitte an Reinhard, als Dolmetscher einzuspringen, falls das jemand nicht verstehen sollte.

Ich benutze Excel 2010 - Niclaus

Grüezie Niclaus,

Sub test()
ActiveChart.ChartArea.Copy
Range(„A40“).Select
ActiveSheet.Pictures.Paste
End Sub

De iberchum ich ä Fehlermeldig
Laufzeitfehler ‚91‘: Objektvariable oder With-Blockvariable
nicht festgelegt.

naja, die kommt z.B. dann wenn du kein Diagramm markiert hast.

Bitte an Reinhard, als Dolmetscher einzuspringen, falls das
jemand nicht verstehen sollte.

Gerne, ich hab ja das schweizer idiotikum unterm kopfkissen und weiß alles.
Aber selbstverständlich, wenn Thomas das nicht versteht übersetze ich ihm das sehr gerne *grinskicher*

Gruß
Reinhard

Fehlermeldung
Laufzeitfehler ‚91‘: Objektvariable oder With-Blockvariable nicht festgelegt.
naja, die kommt z.B. dann wenn du kein Diagramm markiert hast.

Genau so wars dummerweise! Ich werde älter!
Vielen Dank Niclaus

Grüezi Niclaus

Fehlermeldung
Laufzeitfehler ‚91‘: Objektvariable oder With-Blockvariable nicht festgelegt.
naja, die kommt z.B. dann wenn du kein Diagramm markiert hast.

Das könntest Du noch wie folgt abfangen:

 If Selection.Parent.Type = -4169 Then
 ActiveChart.ChartArea.Copy
 Range("A40").Select
 ActiveSheet.Pictures.Paste
 End If

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Grüezi Niclaus

If Selection.Parent.Type = -4169 Then
ActiveChart.ChartArea.Copy
Range(„A40“).Select
ActiveSheet.Pictures.Paste
End If

Noch etwas klarer wird es vielleicht auf diese Weise:

If Typename(Selection) = "CartArea" Then
ActiveChart.ChartArea.Copy
Range("A40").Select
ActiveSheet.Pictures.Paste
End If

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Noch etwas klarer wird es vielleicht auf diese Weise:

If Typename(Selection) = „CartArea“ Then
ActiveChart.ChartArea.Copy
Range(„A40“).Select
ActiveSheet.Pictures.Paste
End If

Vielen Dank Thomas

Sehr gut!

Ich habe das Makro abgeändert, damit ich die Zielzelle - hier Range(„A40“) - frei wählen kann:

Sub Diagramm\_kopieren()
' Kopiert das ausgewählte Diagramm an eine zu bestimmende Stelle

Dim rngZielbereich As Range
If TypeName(Selection) = "ChartArea" Then
 ActiveChart.ChartArea.Copy
 Set rngZielbereich = Application.InputBox( \_
 "Bitte Ziel-Zelle markieren", Type:=8)
 rngZielbereich.Select
 ActiveSheet.Pictures.Paste
End If

End Sub

Was meinst Du als Profi dazu?

Ganz herzlichen Dank für Deine Hilfe und Unterstützung!
Niclaus

Grüezi Niclaus

Ich habe das Makro abgeändert, damit ich die Zielzelle - hier
Range(„A40“) - frei wählen kann:

Was meinst Du als Profi dazu?

Namen sind nur Schall und Rauch… :wink:

Ich hätte das auch so gelöst und meine sowas in meinen Tests auch eingebaut zu haben. Prüfe mal ob nach dem Selektieren einer Zelle der Inhalt der Zwischenablage (die Grafik eben) noch vorhanden ist oder ob sie ggf gelöscht worden ist. Ist das nicht der Fall, so ist obiges eine sehr flexible Lösung.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -