Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
872to876
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
872to876
872to876
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Automatische Verknüpfung unterbinden

Automatische Verknüpfung unterbinden
30.05.2007 18:39:00
uli
Hallo,
gerade ein Problem gelöst, schon steht das nächste vor der Tür:
Ich habe eine Excel-Datei, aus der per Makro ein Tabellenblatt in eine andere Arbeitsmappe kopiert wird.
Dieses Tabellenblatt enthält ein Diagramm. Nachdem das Tabellenblatt kopiert wurde, wird die erste Arbeitsmappe zurückgesetzt, d.h. die Werte für das Diagramm in der ersten Datei werden auf Null gesetzt.
Wenn nun die erste Arbeitsmappe geschlossen ist, und die zweite geöffnet wird, ist alles gut. Dadurch, dass ich in dieser Arbeitsmappe UpdateLinks= 2-updateLinksNever gesetzt habe, wird nicht mehr aktualisiert.
Das Problem entsteht allerdings, wenn die erste Arbeitsmappe noch offen ist. Dann wird ohne zu Fragen in der neuen aktualisiert. Kann ich das irgendwie unterbinden?
Gruß
Uli

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatische Verknüpfung unterbinden
30.05.2007 19:20:00
Beverly
Hi Uli,
mit welchem Code kopierst du denn die Tabelle?
Wenn die gesamte Tablle z.B. mit ActiveSheet.Copy kopiert wird, wird eine neue Arbeitsmappe aus dieser Tabelle erstellt zusammen mit dem Datenbereich des Diagramms und dann gibt es keine Bezüge auf die Ausgangsarbeitsmappe.
________________________________________

AW: Automatische Verknüpfung unterbinden
30.05.2007 19:54:44
uli
Hallo Beverly,
das ist so ziemlich der code. Ist ja eigentlich das gleiche, das du vorgeschlagen hast, oder?
pfad = ThisWorkbook.Path & "\Muster\"
pfadname = ThisWorkbook.Path & "\" & "User" & "\"
userfile = pfad & "Muster.xls"
Set zielmappe = Workbooks.Open(Filename:=userfile)
Set Quellmappe = ThisWorkbook
Quellmappe.Sheets(4).Copy before:=zielmappe.Sheets(1)
zielmappe.SaveAs pfadname & name & ".xls"
zielmappe.Close savechanges:=False

Anzeige
AW: Automatische Verknüpfung unterbinden
30.05.2007 20:21:19
Beverly
Hi Uli,
ja, im Prinzip entspricht das dem wie ich es gemeint habe. Wenn sich dabei jedoch die Datenquelle des Diagramms in einer anderen Tabelle als die kopierte befindet, wird eine Verknüpfung zur Ausgangsdatei erstellt. Du musst nur in der neuen Mappe mal das Diagramm markieren und wirst in diesem Fall bei den Werten der Datenreihen den Bezug zur Ausgangsmappe finden. Es ist nun die Frage, was mit den Diagrammen geschehen soll: wenn sie nicht mehr verändert werden sollen, kannst du sie in ein Bild umwandeln. Wenn sie aber eine neue Datenquelle in der neuen Mappe bekommen sollen, dann muss diese angepasst werden. Dazu müsstest du aber ein wenig genauer beschreiben, wo sich die Datenquelle in der neuen Mappe befindet. Es gibt auch noch die Möglichkeit, die Werte als Wertearray an das Diagramm zu binden. Dabei ist jedoch zu berücksichtigen, dass das Array nicht mehr als ca. 210 Zeichen umfassen darf.
Bis später,
Karin

Anzeige
AW: Automatische Verknüpfung unterbinden
30.05.2007 20:41:56
uli
Hallo Karin,
Die Daten sollen nicht mehr verändert werden. Ich hatte schon probiert, das Diagramm in der ersten Datei in ein Bild umzuwandeln, doch die das hat schon 20 Sekunden gedauert (sehr große Datei). Da mein Rechner schon halbwegs schnell ist und das Makro auch auf Älteren laufen soll, habe ich diese Idee allerdings verworfen. Jetzt hast du mich aber auf die Idee gebracht, dass ich ja auch in der zweiten Datei beim Schließen das Bild umwandeln kann. Hab das gerade mal ausprobiert und dauert nur zwei Sekunden.
Ich kenn leider nur den umständlichen Weg über:
ActiveSheet.Shapes("Diagramm 1").Select
ActiveWindow.WindowState = xlNormal
ActiveWindow.WindowState = xlMaximized
Selection.Cut
Range("b34").select
ActiveSheet.PasteSpecial Format:="Bild (Erweiterte Metadatei)", Link:=False _
, DisplayAsIcon:=False
Kennst du vielleicht einen eleganteren Weg?
Vielen Dank schonmal für deine bisherige Hilfe!
Gruß
Uli

Anzeige
AW: Automatische Verknüpfung unterbinden
30.05.2007 21:11:00
Beverly
Hi Uli,
weshalb derselbe Beitrag 2 Mal vorhanden ist, weiß ich leider nicht, ich habe ihn nur einmal abgeschickt.
Versuche es mit diesem Code

Sub diagramm_kopieren()
Dim chDiagramm As ChartObject
Set chDiagramm = ActiveSheet.ChartObjects(1)
chDiagramm.CopyPicture xlPrinter, xlPicture
ActiveSheet.Paste
End Sub


Bis später,
Karin

AW: Automatische Verknüpfung unterbinden
30.05.2007 21:40:00
uli
Hallo Karin,
Toll, klappt einwandfrei. Vielen Dank dir. Kann es sogar in die erste Mappe einbauen.
Gruß
Uli

Anzeige
AW: Automatische Verknüpfung unterbinden
30.05.2007 20:49:00
Beverly
Hi Uli,
ja, im Prinzip entspricht das dem wie ich es gemeint habe. Wenn sich dabei jedoch die Datenquelle des Diagramms in einer anderen Tabelle als die kopierte befindet, wird eine Verknüpfung zur Ausgangsdatei erstellt. Du musst nur in der neuen Mappe mal das Diagramm markieren und wirst in diesem Fall bei den Werten der Datenreihen den Bezug zur Ausgangsmappe finden. Es ist nun die Frage, was mit den Diagrammen geschehen soll: wenn sie nicht mehr verändert werden sollen, kannst du sie in ein Bild umwandeln. Wenn sie aber eine neue Datenquelle in der neuen Mappe bekommen sollen, dann muss diese angepasst werden. Dazu müsstest du aber ein wenig genauer beschreiben, wo sich die Datenquelle in der neuen Mappe befindet. Es gibt auch noch die Möglichkeit, die Werte als Wertearray an das Diagramm zu binden. Dabei ist jedoch zu berücksichtigen, dass das Array nicht mehr als ca. 210 Zeichen umfassen darf.
Bis später,
Karin

Anzeige
AW: Automatische Verknüpfung unterbinden
30.05.2007 21:02:00
uli
ich glaube bei deinem Post ist gerade etwas schief gelaufen. Er ist identisch mit dem, den du schon vorher gepostet hast
Gruß

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige