WordDateiLinks zu Excel per VBA ändern

Antwort erstellen

Smilies
:D :) :( :o :shock: :? 8-) :lol: :x :P :razz: :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :badgrin: :doubt:
BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet
Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: WordDateiLinks zu Excel per VBA ändern

Re: WordDateiLinks zu Excel per VBA ändern

Beitrag von theoS » 17. Aug 2021, 19:31

Es waren Namen.
Da ist Word jetzt manchmal ein wenig merkwürdig eifrig.
Hier in dem Fall kannst du dir helfen indem du ihm Grenzen zeigst.
Du zählst die Dinger und arbeitest die von unten nach oben ab.
Würde aber empfehlen, wenn du schon von Excel aus arbeitest, dass du den Code komplett nach Excel schiebst. Dann ersparst du dir einiges an Gefummel.

Code: Alles auswählen
Sub ExcelLinkQuellenSetzen(ByVal AufrufendeDateiPfadName As String)

Dim feld As Field, lngX As Long
Dim strPath As String
'MsgBox ("Formular wird verlinkt mit: " & AufrufendeDateiPfadName)
lngX = ThisDocument.Fields.Count
For i = lngX To 1 Step -1
Set feld = ThisDocument.Fields(i)
If feld.Code.Text Like "*Excel*" Then
 
Debug.Print feld.Code.Text
Debug.Print feld.LinkFormat.SourceFullName

 feld.LinkFormat.SourceFullName = AufrufendeDateiPfadName
 feld.LinkFormat.AutoUpdate = False
 feld.Update

Debug.Print "after", feld.Code.Text
Debug.Print "after", feld.LinkFormat.SourceFullName
End If
Next i

End Sub


Makros sollten sich mit der Tastenkombi Strg+Pause unterbrechen lassen. Lange gedrückt lassen.

Re: WordDateiLinks zu Excel per VBA ändern

Beitrag von theoS » 17. Aug 2021, 18:59

Von hinten durchs Knie ins Auge. :)
Du startest ein Excelsheet das ein Word-Dok startet das wiederum ein Makro aufruft das zum Excelsheet verknüpft.
Das könntest du mit einem Serienbrief in der umgekehrten Richtung mit ein paar Klicks auch erreichen.
Aber, ehe der Code bei mir was tut, müsste ich wissen, was genau das hier ist:
OfficeTools V15.xlsm" DatenPflege!InputFeld10


Das meckert der Editor fleißig an und ich habe keine Ahnung, wie ich das nachbauen soll.
Kannst du zum Testen ein Sheet machen, das diese Felder enthält? Oder sind das Zellnamen?

WordDateiLinks zu Excel per VBA ändern

Beitrag von DonQijote » 15. Aug 2021, 16:26

Hallo,

ich öffne über ein Excel-Makro in Word eine Datei und starte in dieser das Makro: "ExcelLinkQuellenSetzen"
und übergebe eine String Variable, die Pfad und Name der aufrufenden Excel-Datei an Word übergibt:

Code: Alles auswählen
Set objApp = OffApp("Word")
If Not objApp Is Nothing Then
With objApp
.Documents.Open WordDateiPfadName
.Run "ExcelLinkQuellenSetzen", AufrufendeDateiPfadName
End With

bis hierher ist alles fein.

anschließend soll das gestartete WordMakro
alle Excel-Verknüpfungen im geöffneten Word Dokument mit dem übergebenen DateiPfad ersetzen und aktualisieren.

Code: Alles auswählen
For Each feld In ThisDocument.Fields
If feld.Code.Text Like "*Excel*" Then

feld.LinkFormat.SourceFullName = AufrufendeDateiPfadName
feld.Update
feld.LinkFormat.AutoUpdate = False

End If
Next feld


bei der Aktualisierung der Links bleibt der Code im 2. Feld in einer
Endlosschleife hängen, und Word lässt sich nur über den Taskmanager beenden.

Weiß jemand Rat?
Danke für Eure hilfe.

Win10, Word 2013

PS: debug.Print ohne Feld.XY-Befehle läuft problemlos durch
Sub excel_links_listen() findet korrekt alle Felder

Nach oben