7.1k Aufrufe
Gefragt in Textverarbeitung von
Hallo,
ich habe ein Word Dokument erstellt, dass Daten aus einer vorher geöffneten Excel Datei per Verknüpfung einfügt. Wenn ich nach der Aktualisierung die Worddatei unter einem anderen Namen abspeichere, bleiben die Verknüpfungen zur Original Exceldatei bestehen. D.h. wenn ich die Word Datei wieder öffne versucht das Dokument sofort die Elemente zu aktualisieren. Jetzt zu meiner Frage, wie kann ich per Makro die Verknüpfungen löschen? Ich habe das schon versucht mit Marko aufzeichnen und dann auf Verknüpfungen in der Liste alle markieren und Verknüpfugnen löschen. Leider wird aber beim Makro diese Abläufe nicht gespeichert. Da ich mich mit der Programmierung nicht auskenne, kann mir vielleicht jemand einen Code vorschlagen.
Vielen Dank
Gunter

6 Antworten

0 Punkte
Beantwortet von kjg17 Profi (34.4k Punkte)
Hallo Gunter,

so geht das nicht, entweder das Excel-Objekt ist verknüpft oder es ist eingebettet.

Wenn du eine Kopie des aktualisierten Originals speichern willst, welches zwar den letzten Stand anzeigt, aber nicht mehr mit der Excel-Datei für weitere Aktualisierungen verknüpft sein soll, dann musst du dieses Objekt in Word auswählen, mit [Strg]+[X] ausschneiden und dann wieder über Einfügen -> Inhalte einfügen -> Einfügen - MS Excel-Objekt in das Word-Dokument einbetten. Anschließend über Speichern unter ... mit einem anderen Namen ablegen und schließen.

Das Original-Word-Dokument bleibt für weitere Aktualisierungen mit der Excel-Tabelle verknüpft, die Kopie ist es dann aber nicht mehr. Du könntest zwar in der Kopie weiterhin mit Excel Änderungen vornehmen, diese würden sich dann aber nicht mehr auf die Original-Excel-Tabelle auswirken.

Gruß
Kalle
0 Punkte
Beantwortet von
Hallo,
vielen Dank für die Antwort, leider gehen dabei die Formatierungen verloren. Wenn ich mit rechtsklick auf die Verknüpfung gehe habe ich die Möglichkeit alle Verknüpfungen zu löschen, der Text bleibt erhalten, dies wollte ich mit einem Button vereinfachen.
Gruß
Gunter
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Gunter,

wenn du in dem Text nur Verknüpfungen hast, die du entfernen willst und keine Hyperlinks, Querverweise oder Formeln aus den Formeleditor o.ä., dann markiere den ganzen Text und drücke
<STRG> + <6>.

Probier es aber vorsichtshalber erst einmal in einem Duplikat deiner Orginaldatei aus.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo,

vielen Dank, dass mit Strg +6 hat wunderbar geklappt, jetzt hab ich den Befehl in den code zu meinem Button eingefügt, jetzt kann ich die Verknüpfungen löschen und die Datei unter dem Namen Angebot speichern, jetzt hätte ich noch eine Bitte, ist es möglich den Code so zu schreiben, dass das Dokument nicht gleich gespeichert wird sondern den Anwender fragt wo und unter welchem Namen soll die Datei gespeichert werden?

Danke
Gunter


Private Sub CommandButton1_Click()

'

' speichern Makro

'

'

Selection.WholeStory

Selection.Fields.Unlink

ChangeFileOpenDirectory _

"G:\SV\Angebote_Revisionen_Montagepläne_Preislisten\Revisionen\Angebotsvorlagen\fertige_Angebote\"

ActiveDocument.SaveAs FileName:= _

"G:\SV\Angebote_Revisionen_Montagepläne_Preislisten\Revisionen\Angebotsvorlagen\fertige_Angebote\Angebot.docm" _

, FileFormat:=wdFormatXMLDocumentMacroEnabled, LockComments:=False, _

Password:="", AddToRecentFiles:=True, WritePassword:="", _

ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _

SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _

False

End Sub
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Gunter,

probiere es mal so:

Private Sub CommandButton1_Click()

' Speichern Makro
Selection.WholeStory

Selection.Fields.Unlink

Dialogs(wdDialogFileSaveAs).Show

End sub


Gruß

M.O.
0 Punkte
Beantwortet von
Hallo,

nachfolgender code hat eine zeitlang funktioniert, aber jetzt kommt die
Meldung "Projekt oder Bibliothek nicht gefunden" (msoOLEControlObject),
ich habe keine Speicherort verändert, hat jemand eine Ahnung woran das liegen kann?

Danke
Gunter

Selection.WholeStory
Selection.Fields.Unlink
Dim sh As Shape
For Each sh In ThisDocument.Shapes
If (sh.Type = msoOLEControlObject) Then
sh.Delete
End If
Next sh
Dialogs(wdDialogFileSaveAs).Show
...