Diagramm 'einfrieren'?

Guten Abend,

gibt es eine Möglichkeit, ein Diagramm (Kurve, Balken, …) „einzufrieren“, d.h. die zugehörigen Tabellenwerte löschen, das Diagramm aber weiter bestehen zu lassen - dass man also nur noch das Diagramm hat, in einem Extrablatt oder sonst wie.

Das fragt sich
Laika

gibt es eine Möglichkeit, ein Diagramm (Kurve, Balken, …)
„einzufrieren“, d.h. die zugehörigen Tabellenwerte löschen,
das Diagramm aber weiter bestehen zu lassen - dass man also
nur noch das Diagramm hat, in einem Extrablatt oder sonst wie.

Hallo Laika,

zwei spontane Ideen,
du hast die Daten in einem Blatt was du ausblendest.
Das Blatt kannst du auch so ausblenden daß man es mit Excel alleine ohne Vba nicht mehr einblenden kann.

Oder machst einen Screenshot, also ein Bild der Anwendung, dann mit Irfanview oder anderen Grafikprogrammen das Diagramm extrahieren und als Grafik in eine tabelle einfügen.

Gruß
Reinhard

gibt es eine Möglichkeit, ein Diagramm (Kurve, Balken, …)
„einzufrieren“, d.h. die zugehörigen Tabellenwerte löschen,
das Diagramm aber weiter bestehen zu lassen - dass man also
nur noch das Diagramm hat, in einem Extrablatt oder sonst wie.

Hallo Laika,
markiere das Diagramm, dann SHIFT + Bearbeiten > Bild kopieren…

In ein neues Tabellenblatt (oder ein anderes Programm, z.B. IrfanView oder Word) einfügen.

Gruß Fritz

gibt es eine Möglichkeit, ein Diagramm (Kurve, Balken, …)
„einzufrieren“, d.h. die zugehörigen Tabellenwerte löschen,
das Diagramm aber weiter bestehen zu lassen

Hallo Laika
Ich habe irgendwo im WWW mal folgenden Hinweis auf eine weitere Variante gelesen:

Normalerweise bezieht sich ein Diagramm immer auf einen Tabellenbereich Ihrer Arbeitsmappe. Sobald Sie Daten darin ändern, verändert sich auch das Diagramm. Über einen Trick können Sie das Diagramm aber so umwandeln, dass es sich nicht mehr verändert. Das geht so:

Klicken Sie eine Datenreihe in Ihrem Diagramm an.
Nun zeigt Excel in der Bearbeitungsleiste die Funktion =DATENREIHE mit Zellbezügen an.
Klicken Sie mit der Maus in die Bearbeitungsleiste
Drücken Sie die Taste F9.
Drücken Sie die Taste EINGABE (auch ENTER oder RETURN genannt).
Durch den Einsatz der Taste F9 wandelt Excel den Inhalt der Bearbeitungszeile in absolute Werte um. Dadurch wird das Diagramm unabhängig von den zuvor definierten Zellen, die nun gelöscht werden können.

Das Diagramm ist dann zwar nicht ganz eingefroren: In der Bearbeitungsleiste kann man die Zahlen immer noch ändern, aber es sind keine Tabellen-Daten mehr nötig.

Grüsse Niclaus

Grüezi Niclaus

Klicken Sie eine Datenreihe in Ihrem Diagramm an.
Nun zeigt Excel in der Bearbeitungsleiste die Funktion
=DATENREIHE mit Zellbezügen an.
Klicken Sie mit der Maus in die Bearbeitungsleiste
Drücken Sie die Taste F9.
Drücken Sie die Taste EINGABE (auch ENTER oder RETURN
genannt).
Durch den Einsatz der Taste F9 wandelt Excel den Inhalt der
Bearbeitungszeile in absolute Werte um. Dadurch wird das
Diagramm unabhängig von den zuvor definierten Zellen, die nun
gelöscht werden können.

Ich nutze diese Technik gerne für die Erzeugung von Dummy-Datenreihen oder -Punkten die dann definierte Linien in einem Diagramm ausgeben sollen.

Das Problem, möchte ich hier nicht verschweigen, entsteht dann, wenn es sich um grössere Datenmengen handelt. Irgendwann ist die maximale Länge der DATENREIHE()-Funktion erreicht und alles weitere wird dann abgeschnitten.

Ich plädiere hier auch für das Kopieren als Bild - das bleibt dann unveränderlich. Auch diese Technik wende ich hier an, wenn es um die Dokumentation und den Vergleich diverser Zustände geht.
Dabei durchlaufe ich in einer Schleife in VBA alle Eingabe-Parameter (gekoppelt mit einer Zielwertsuche) und kopiere dann jeweils das Diagramm als Bild in ein schönes Raster.
Das ergibt eine hervorragende graphische Dokumentation der veränderten Parameter.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Danke an alle …
… habe alles mal ausprobiert. Einen Screenshot zu machen, war mir schon klar, wollte aber wissen, ob es noch andere (excelinterne) Möglichkeiten gibt.

@Reinhard:
Das ist denn wohl das Einfachste und Beste. Bei einem in ein Tabellenblatt eingebetteten Diagrammen markiert man dieses zweckmäßig und wählt dann die Seitenansicht - dann ist’s größer. Dann Screenshot, in eine Bildbearbeitung kopieren und das Überflüssige wegschneiden und als GIF speichern. Das belegt deutlich weniger Speicherplatz als z.B. JPG, vom Aussehen her ist da kein Unterschied. GIF funktioniert gut, da ein Exceldiagramm i.d.R. ja nur wenige Farben hat.

@Fritz:
Das kopierte Diagramm wird dabei nicht sehr schön wiedergegeben. Insbesondere fein gepunktete Gitternetzlinien, die ich häufig für die Hilfsgitter verwende, werden ziemlich dick, nicht punktiert gezeichnet.

@Niclaus & Thomas:
Da hat bei mir just die von Thomas genannte Begrenzung zugeschlagen: Mein Test- (Säulen-) Diagramm enthält 365 (Tages-) Werte eines Jahres. In der Bearbeitungsleiste waren nach F9 zwar die Werte, wegen der Unvollständigkeit kam natürlich „Die Formel enthält einen Fehler …“

Grüezi laika

@Fritz:
Das kopierte Diagramm wird dabei nicht sehr schön
wiedergegeben. Insbesondere fein gepunktete Gitternetzlinien,
die ich häufig für die Hilfsgitter verwende, werden ziemlich
dick, nicht punktiert gezeichnet.

Da gibt es meiner Ansicht nach noch ein paar Optionen beim Einfügen des derart ‚geschossenen‘ Bildes - das kommt auch noch ein wenig auf die Excel-Version an…

Wähle da mal [x]Wie angezeigt und unten dann [x]Als Bild aus, dann sollte die Qualität besser sein.

Wie geschildert wende ich diese Technik selbst in einem umfangreichen Vergleichs-Tool an und kann dabei keinerlei Einbusse in der Grafik-Qualität feststellen.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Das Problem, möchte ich hier nicht verschweigen, entsteht
dann, wenn es sich um grössere Datenmengen handelt. Irgendwann
ist die maximale Länge der DATENREIHE()-Funktion erreicht und
alles weitere wird dann abgeschnitten.

Grüezi Thomas
Danke für diesen Hinweis.
Einen schönen Tag und viele Grüsse
Niclaus

@Reinhard:
Das ist denn wohl das Einfachste und Beste. Bei einem in ein
Tabellenblatt eingebetteten Diagrammen markiert man dieses
zweckmäßig und wählt dann die Seitenansicht - dann ist’s
größer. Dann Screenshot, in eine Bildbearbeitung kopieren und
das Überflüssige wegschneiden und als GIF speichern. Das
belegt deutlich weniger Speicherplatz als z.B. JPG, vom
Aussehen her ist da kein Unterschied. GIF funktioniert gut, da
ein Exceldiagramm i.d.R. ja nur wenige Farben hat.

Hallo Laika,

mit dem nachfolgende Code erzeugst du ein .gif des Diagramms.
Ggfs. Blattnamen und die 1 abändern wenn du mehrere Diagrammen hast.

Es sind auch andere Dateiformate außer „GiF“ möglich, allerdings weiß ich nicht wie genau die heißen.
Die Hilfe zu „Export“ hilft da wenig:

"
FileName String erforderlich. Der Name der exportierten Datei.

FilterName Variant optional. Der sprachenunabhängige Name des
Grafikfilters, wie er in der Registrierung erscheint.

Interactive Variant optional. True, falls das Dialogfeld angezeigt
wird, das die filterspezifischen Optionen enthält. Falls dieses
Argument den Wert False besitzt, verwendet Microsoft Excel für den
Filter die Standardwerte. Der Standardwert ist False."

Jetzt könnten ja diese registrierten Grafikfilter bei dir anders sein als bei mir, also weniger oder mehr. Ich weiß jetzt nicht wo und wie ich die mit Vba auslesen kann um dann in einem Code ein Diagramm mit allen vorhandenen Grafikendungen abzuspeichern sodaß du die vergleichen kannst.

Und Interactive, ich sehe bislang keinen Unterschied ob ich das auf True oder False setze.

In ein Standardmodul, z.B. Modul1 o.ä.

Sub nn()
Const Pfad As String = "c:\test\kwdiagramm\"
With Worksheets("Tabelle1").ChartObjects(1).Chart
 .Export Filename:=Pfad & "current\_sales.gif", FilterName:="GIF", Interactive:=True
End With
End Sub

Kommste mit dem Code klar? Wenn nicht sag Bescheid.

Gruß
Reinhard

Diagramm als Bild speichern
Hallo Laika,

probiere auch mal nachfolgenden Code, er fügt das Diagramm als Bild gleich wieder in die Tabelle ein.

Wie ersichtlich hat CopyPicture auch den Parameter xlBitmap, sind zwar viele Bytes in der Bilddatei aber es ergab sich ein schlimmeres Problem, bei meinem Testdiagramm wurden bei zweistelligen y-Achsbeschriftungen die linke Stelle abgeschnitten.

Sub nn2()
With Worksheets("Tabelle1").ChartObjects(1)
 '.CopyPicture Format:=xlBitmap
 .CopyPicture Format:=xlPicture
End With
ActiveSheet.Paste
End Sub

Gruß
Reinhard

1 Like

Grüezi Thomas,

Wähle da mal [x]Wie angezeigt …

habe ich,

… und unten dann [x]Als Bild aus, …

dann ist die Qualität auch schlecht, wenn ich aber „Bitmap“ wähle, ist’s gut.

Laika

… das mit dem Diagramm kopieren reicht mir vorerst (siehe auch Antwort an Thomas). Habe mir Deinen Code abgespeichert, komme schon klar damit, hole ihn ggf. gelegentlich aus den Tiefen meiner Festplatte wieder raus.

Schönen Tag
Laika

Grüezi Laika

… und unten dann [x]Als Bild aus, …

dann ist die Qualität auch schlecht, wenn ich aber „Bitmap“
wähle, ist’s gut.

Tja, da hatte mein 50/50 Joker den falschen erwischt… :wink:

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -