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

Forumthread: Diagramme ohne Verknüpfung kopieren

Diagramme ohne Verknüpfung kopieren
16.05.2007 16:22:59
Martin
Hallo zusammen,
folgendes Problem:
Ich habe eine Reihe von Excel-Dateien. Nun muss ich in jede Datei ein Diagramm kopieren. Am liebsten würde ich nun einmal das Diagramm erstellen und dann in jede Excel-Datei kopieren. Beim kopieren aktualisiert sich die Datenquelle aber leider nicht auf das aktuelle Datenblatt, sondern immer noch auf die Ursprungsdatei.
Gibt es da eine Möglichkeit, diese automatische Verknüpfung zu unterbinden?
Vielen Dank

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramme ohne Verknüpfung kopieren
16.05.2007 16:25:44
Martin
Alternativ würde es mir auch helfen, wenn ich das gesamte Tabellenblatt kopieren kann, und dabei die Verknüpfungen der einzelnen Zellen nicht mehr auf das Ursprungsdokument verknüpft sind....

AW: Diagramme ohne Verknüpfung kopieren
16.05.2007 23:06:16
ingUR
Hallo, Martin,
das folgende Makro ist als Standardmodul in einer Arbeitsmappe einzubauen, die das "Orignal" des Diagramms enthält.
Hier ist es die "Mappe1" mit dem Tabellenblatt "Tabelle1" (ws0), wo die Musterkopie des Diagramms (ChartObject(1)) liegt.
Die Daten, hier zwei Datenreihen, stehen in den Spalten A bis C (X-Werte, Y1, Y2) in den Zeilen 2 bis 16 (XWerte:=R2C1:R16C1; Y1Werte:=R2C2:R16C2; Y2Werte:=R2C3:R16C3).
Die Bereiche gelten auch für die Tabellen, in die das Diagramm kopiert werden sollen, sofern keine weiteren Veränderungen vorgenommen werden.
Um das Makro zu starten, ist auf das Tabellenblatt in der Arbeitmappe zu wechseln, auf dem das Diagramm kopiert werden soll.

Sub KopiereDiagramm()
Dim chtObj As ChartObject, ws0 As Worksheet, ws1 As Worksheet, TName As String
'Tabelle mit "Original"-Diagramm
Set ws0 = Workbooks("Mappe1").Worksheets("Tabelle1")
'aktive Tabelle auf der das "Original"-Diagramm kopiert werden soll
Set ws1 = ActiveWorkbook.ActiveSheet
Set chtObj = ws0.ChartObjects(1)
chtObj.Activate
With ActiveChart.ChartArea
.Select
.Copy
End With
ws1.Activate
ws1.Range("D2").Select
ActiveSheet.Paste
TName = "=" & ws1.Name & "!"
ActiveSheet.ChartObjects(1).Activate
With ActiveChart
.SeriesCollection(1).XValues = TName & "R2C1:R16C1"
.SeriesCollection(1).Values = TName & "R2C2:R16C2"
.SeriesCollection(1).Name = TName & "R1C2"
.SeriesCollection(2).XValues = TName & "R2C1:R16C1"
.SeriesCollection(2).Values = TName & "R2C3:R16C3"
.SeriesCollection(2).Name = TName & "R1C3"
End With
Range("D2").Select
Set ws1 = Nothing
Set ws0 = Nothing
Set chtObj = Nothing
End Sub

Mit einer Schleife über alle im Digrammbefindlichen Datenreihen könnte die Umschreibung des Tabellennamens in der Referenzz erledigt werden, wenn die Datenreihen ebenfalls in gesetzmäßig aufeinaderfolgenden Spalten angeordnet sind.
Varible Zeilenanzahl (unterschiedliche Datenanzahl) können durch eine entsprechende Verkettung der Bezugsangaben berücksichtigt werden, z.B.: "R2C" & s & ":R" & maxRow & "C" & s , wobei s für die Laufvariable zur Kennzeichnung der vorhandenne Datenreihen eingesetzt ist:


maxS = chtObj.Chart.SeriesCollection.Count   'maximale Anzahl der Datenreihen im Diagramm
maxRow = ws1.Cells(ws1.Rows.Count, 1).End(xlUp).Row  'maximale Anzah der Zeilen in der  _
Datenspalte
For i = 1 To maxS
s = i + 1
.SeriesCollection(i).XValues = TName & "R2C1:R" & maxRow & "C1"
.SeriesCollection(i).Values = TName & "R2C" & s & ":R" & maxRow & "C" & s
.SeriesCollection(i).Name = TName & "R1C" & s
Next i


Gruß,
Uwe

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Diagramme ohne Verknüpfung kopieren


Schritt-für-Schritt-Anleitung

  1. Diagramm erstellen: Zuerst erstelle dein Diagramm in der Excel-Datei, die als Vorlage dient.

  2. Makro einfügen: Öffne den VBA-Editor (Alt + F11) und füge das folgende Makro in ein neues Modul ein:

    Sub KopiereDiagramm()
       Dim chtObj As ChartObject, ws0 As Worksheet, ws1 As Worksheet, TName As String
       'Tabelle mit "Original"-Diagramm
       Set ws0 = Workbooks("Mappe1").Worksheets("Tabelle1")
       'aktive Tabelle, auf der das "Original"-Diagramm kopiert werden soll
       Set ws1 = ActiveWorkbook.ActiveSheet
       Set chtObj = ws0.ChartObjects(1)
       chtObj.Activate
       With ActiveChart.ChartArea
           .Select
           .Copy
       End With
       ws1.Activate
       ws1.Range("D2").Select
       ActiveSheet.Paste
       TName = "=" & ws1.Name & "!"
       ActiveSheet.ChartObjects(1).Activate
       With ActiveChart
           .SeriesCollection(1).XValues = TName & "R2C1:R16C1"
           .SeriesCollection(1).Values = TName & "R2C2:R16C2"
           .SeriesCollection(1).Name = TName & "R1C2"
           .SeriesCollection(2).XValues = TName & "R2C1:R16C1"
           .SeriesCollection(2).Values = TName & "R2C3:R16C3"
           .SeriesCollection(2).Name = TName & "R1C3"
       End With
       Range("D2").Select
       Set ws1 = Nothing
       Set ws0 = Nothing
       Set chtObj = Nothing
    End Sub
  3. Das Makro ausführen: Wechsle zurück zu Excel und führe das Makro aus, um das Diagramm ohne Verknüpfung in das aktive Tabellenblatt zu kopieren.


Häufige Fehler und Lösungen

  • Fehler: Diagramm bleibt verknüpft: Stelle sicher, dass du das Diagramm korrekt kopierst und die Datenquellen im Makro entsprechend anpasst.
  • Fehler: Diagramm wird nicht angezeigt: Überprüfe, ob das Diagramm in der richtigen Zelle eingefügt wurde und die Datenquelle korrekt angegeben ist.

Alternative Methoden

  1. Diagramm als Bild kopieren: Du kannst das Diagramm auch als Bild kopieren, indem du mit der rechten Maustaste auf das Diagramm klickst, "Als Bild kopieren" wählst und dann in das Ziel-Tabellenblatt einfügst. Dies verhindert jegliche Verknüpfung.

  2. Daten manuell kopieren: Eine andere Möglichkeit ist, die zugrunde liegenden Daten manuell in das neue Tabellenblatt zu kopieren und das Diagramm neu zu erstellen.


Praktische Beispiele

  • Diagramm kopieren ohne Bezug: Verwende das oben genannte Makro, um ein Diagramm zu kopieren, ohne dass es weiterhin auf die Ursprungsdaten verweist.
  • Diagramm in ein anderes Tabellenblatt verknüpfen: Mit dem Makro kannst du auch das Diagramm in verschiedene Tabellenblätter einfügen, indem du die Zielblätter entsprechend anpasst.

Tipps für Profis

  • Dynamische Bereiche: Überlege, ob du dynamische Bereiche in deinem Diagramm verwenden kannst, um die Datenquellen automatisch anzupassen, wenn sich die Daten ändern.
  • Automatisierung durch Schleifen: Du kannst das Makro erweitern, um mehrere Diagramme in einer Schleife zu kopieren, was dir viel Zeit sparen kann.

FAQ: Häufige Fragen

1. Wie kann ich ein Excel-Diagramm kopieren ohne Verknüpfung?
Du kannst ein Diagramm ohne Verknüpfung kopieren, indem du das entsprechende Makro verwendest, das die Datenquellen anpasst.

2. Ist es möglich, ein Diagramm in ein anderes Tabellenblatt zu verknüpfen?
Ja, du kannst ein Diagramm in ein anderes Tabellenblatt verknüpfen, indem du die Referenzen im Makro entsprechend anpasst.

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