Variable Dateiverknüpfungen

Moderator: ModerationP

Variable Dateiverknüpfungen

Beitragvon MattiROW » 12. Nov 2020, 12:01

Hallo Community,

ich bräuchte mal einen Denkanstoß zum Thema Dateiverknüpfungen. Ich habe mehrere Excel Dateien untereinander und mit Word verknüpft.
In Excel werden Tabellen, Diagramme und Textbausteine erzeugt, welche in Word dargestellt werden. Das erzeugte
Word Dokument wird dann händisch ergänzt und ausgedruckt.

Alle verknüpften Dateien liegen im selben Ordner. Diesen Ordner möchte ich für jeden Kunden individuell anlegen (Kopieren).

Sobald ich den Speicherort des Ordners ändere (z.B. bei einem neuen Kunden) funktionieren logischerweise die Dateiverknüpfungen
nicht mehr und müssen händisch im Word/Exceldokument jedes mal angepasst werden.

Gibt es eine elegantere Möglichkeit das Problem zu lösen? Alle Dateien haben immer den gleichen Namen und liegen immer zusammen
in einem Ordner. Ich wäre sehr dankbar für für Ideen oder auch konkrete Lösungsansätze.
(Office365)

Hier mein Ansatz:

Sub Document_Open()

Dim newLink, PFAD As String

PFAD = ThisDocument.Path ' aktuelles Verzeichnis ermitteln
newLink = PFAD & "\Device Check.xlsx"
MsgBox newLink

' Hier habe ich trotz langer Recherche keine Möglichkeit gefunden die Quelldatei
' gegen den neuen Pfad (newlink) auszutauschen.

End Sub



Vielen lieben Dank schon im voraus
MattiROW
 

Re: Variable Dateiverknüpfungen

Beitragvon theoS » 12. Nov 2020, 19:26

Das sollte mit Suchen/Ersetzen gehen. Lass dir mal die Feldfunktionen anzeigen, da ist der Pfad dann nicht nur sichtbar sondern auch zu ändern.
Du kannst aber auch einfach den Dialog verwenden, den es dafür gibt
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5600
Registriert: 19. Apr 2008, 00:14

Re: Variable Dateiverknüpfungen

Beitragvon MarkMH_K » 12. Nov 2020, 22:10

Hi,

es gibt auch noch die Hyperlink-Basis.
https://support.microsoft.com/de-de/hel ... -word-docu

M.
MarkMH_K
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 2660
Registriert: 17. Jul 2011, 12:45
Wohnort: Köln rrh

Re: Variable Dateiverknüpfungen

Beitragvon MattiROW » 13. Nov 2020, 07:45

Vielen lieben Dank für die schnellen Lösungsvorschläge.
Leider hilft mir dies nicht so richtig weiter.

Ich muss ca. 500 Ordner anlegen, die jeweils die Excel Datei (Hier werden die Daten erzeugt)
und die Word Datei enthalten (Hier werden die Daten/Diagramme/Listen etc. druckfertig aufbereitet).

Daher suche ich eine universelle Lösung (auch für andere Projekte).
Beim Öffnen des Dokumentes soll daher automatisiert nachgeschaut werden, in welchem Ordner das Dokument gespeichert ist.
In diesem Ordner liegt auch die Excel Datei.

Dann soll die Quelldatei des Dokumentes automatisch dahingehend geändert werden.
Ich habe nun schon viele manuelle Wege ausprobiert und festgestellt, dass es ziemlich umständlich ist die Verknüpfungen zu Excel manuell zu aktualisieren.

Prinzipiell suche ich konkret eine Möglichkeit mittels VBA den Speicherort der Quelldatei anzupassen.

Nochmals vielen Dank und ich hoffe, dass es einen VBA-Befehl gibt, der dies ermöglicht.
MattiROW
 

Re: Variable Dateiverknüpfungen

Beitragvon MarkMH_K » 13. Nov 2020, 11:43

Hi,
ungeprüft: Gibt man als Hyperlink-Basis einen Punkt ein, beziehen sich die Verknüpfungen auf den aktuellen Ordner. Diesen kann man aus ActiveDocument.FullName bzw.~.Path extrahieren.

M.
MarkMH_K
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 2660
Registriert: 17. Jul 2011, 12:45
Wohnort: Köln rrh

Re: Variable Dateiverknüpfungen

Beitragvon knobbi38 » 13. Nov 2020, 12:52

Hallo,

vielleicht hilft dir dieser Beitrag etwas weiter:
http://www.office-loesung.de/ftopic508151_0_0_asc.php

Ulrich
knobbi38
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 3255
Registriert: 02. Jul 2015, 14:23

Re: Variable Dateiverknüpfungen

Beitragvon theoS » 13. Nov 2020, 21:38

Also wenn du das so haben willst, dann sollte in jedem Dok ein Autostartmakro mit drin sein, der das abgleicht.
Prinzipiell sollte das so gehen:
Code: Alles auswählen
Sub LinkAktualisieren()
Dim strNeuerPfad, lnFLDs As Long
strNeuerPfad = ThisDocument.Path
'oder
lnFLDs = ActiveDocument.Fields.Count
If lnFLDs > 0 Then
For i = 1 To lnFLDs
Set fld = ActiveDocument.Fields(i)
 If Left(fld.OLEFormat.ClassType, 11) = "Excel.Sheet" Then

  fld.LinkFormat.SourceFullName = strNeuerPfad & "\" & fld.LinkFormat.SourceName

 End If
Next i
End If
End Sub


Prinzipiell sollte das auch mit for-each funktionieren, aber das Ding hat bei meiner Datei dann eine Endlosschleife durchlaufen, drum zähle ich das jetzt. Hat auch den Vorteil, dass, wenn kein Feld vorhanden ist in einer Datei, das nicht angefasst wird.
Wenn die Datei nicht an dem richtigen Pfad vorhanden ist, dann gibts Fehler und der Pfad wird auch nicht angepasst.
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5600
Registriert: 19. Apr 2008, 00:14

Re: Variable Dateiverknüpfungen

Beitragvon MattiROW » 14. Nov 2020, 09:16

Ein großes DANKE an alle.
Ich werde heute Abend versuchen alles umzusetzen und melde mich wieder.
MattiROW
 

Re: Variable Dateiverknüpfungen

Beitragvon Fen » 14. Nov 2020, 10:59

@theoS

geht der Macro von 21:38 nicht auch einmal in der Normal.dot? Mit "dim withevents App as application" sollte man auf alle neuen und neu-geöffenten Datei zureifen können.

mfg
Fen
 

Re: Variable Dateiverknüpfungen

Beitragvon theoS » 14. Nov 2020, 11:54

Keine Ahnung, müsste man ausprobieren. Aber da ja die Datei u.u. auch in einem eigenen Thread geöffnet werden wird, denke ich eher nicht. Müsste man ausprobieren.
Wobei einem die with-event-Sachen das Leben nicht leicht machen
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5600
Registriert: 19. Apr 2008, 00:14

Re: Variable Dateiverknüpfungen

Beitragvon Fen » 14. Nov 2020, 12:34

Zur ersten Frage:

Änderung der links in Excel

Hier ein Beispiel-Code:

Code: Alles auswählen
Sub M_snb()
    sn = ThisWorkbook.LinkSources(1)
   
    For j = 1 To UBound(sn)
       ThisWorkbook.ChangeLink Dir(sn(j)), Replace(sn(j), Dir(sn(j)), "Book2a.xlsb")
    Next
End Sub

--------------------------------------

ThisWorkbook.ChangeLink Name:= "Pfad\AlterName.xlsx", NewName:= "Pfad\NeuerName.xlsx", Type:=xlExcelLinks


Das Projekt ist recht komplex, vielleicht hilft es zuerst Teile davon zu lösen.

mfg
Fen
 

Re: Variable Dateiverknüpfungen

Beitragvon Fen » 14. Nov 2020, 14:41

Das schöne an den Foren ist, dass man ohne jede Kenntnis der Details Vorschläge machen kann:

- alle Daten in eine xlsx
- wegen der händischen Eingabe: für jeden Kunden eine docx im selben Ordner
- eine docm für alle Makros

Das sollte übersichtlicher und leichter zu warten sein.
Fen
 

Re: Variable Dateiverknüpfungen

Beitragvon theoS » 14. Nov 2020, 15:46

Nope, Fen, immer funktioniert das auch nicht.
Die Datei ist Word und nur ein paar Teile davon kommen von Excel.
Die Ausgangslage ist wohl so, dass die Excelquelle jeweils in den gleichen Ordner sein soll wie die Worddatei.
Ob das Sinn macht ist mir gleich, der OP wird seinen Grund haben.
Für das Problem hätte ich die Datei halt gleich ins Dok eingebettet, was aber nicht für jeden selbstverständlich zu bearbeiten ist. Wenn man was für andere Leute bereitstellt muss man ja immer daran denken, dass man den DAU auch immer dabei hat genauso wie die, die keinen Bock haben ihre Arbeitsgewohnheiten zu ändern. Also, für jeden seine eigene Datei.
Usw.
Die Frage, wo du das Makro letztlich einbaust ist auch immer dahingehend zu beantworten, welche User gehen damit um.
Lege ich ein *.dotm an, lege sie in den Standardvorlagenordner, brauche ich im Dok kein Makro. Verschiebe ich das Ding auf einen anderen Rechner, sind die Makros nicht mehr aktiv.
Dreh das wie du willst.
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5600
Registriert: 19. Apr 2008, 00:14

Re: Variable Dateiverknüpfungen

Beitragvon MattiROW » 15. Nov 2020, 18:16

Hallo theoS,

genau das ist meine Herausforderung. Die Excel Datei wird von anderen gepflegt, als von den Usern der Word-Datei.
Alle haben nur die Aufgabe entweder die Excel oder die Worddatei des entsprechenden Kunden zu öffnen, zu bearbeiten
und zu speichern. Hier sind viele damit schlicht überfordert, die Dateiverknüpfungen manuell zu aktualisieren.
Um der Aussage vorzubeugen "Funktioniert nicht" und ich jedes Mal nacharbeiten muss, möchte ich diesen Weg einrichten.

Vielen Dank für den Code :)

Noch ist es mir nicht gelungen, ihn zum Laufen zu bekommen. Ich vermute, dass sich bei den ganzen laienhaften Tests von
mir die verknüpften Elemente aus Excel streiken.
Ich werde noch einmal mit einem leeren Word Dokument starten und alles Schritt für Schritt einrichten und testen.
Ich würde mich sehr freuen, wenn ich bei Problemen trotzdem nochmal nachfragen könnte.
Vielen Dank auch an alle anderen.
Bis dahin
MattiROW
 

Re: Variable Dateiverknüpfungen

Beitragvon theoS » 15. Nov 2020, 23:06

Klar, dazu ist das Forum ja da.
Es ist vielleicht dann auch hilfreicher, wenn du beschreibst, was genau nicht geht, denn ein "noch nicht zum Laufen gebracht" hilft halt wenig den Grund dafür zu eruieren.
Das Ändern des Pfades ist ja jetzt so eingestellt, dass aus dem Dokument in dem das Makro drin ist, der Pfad ausgelesen wird.
Das geht natürlich nur dann, wenn das Dok gespeichert ist.
Beide Dateien müssen sozusagen im Moment im gleiche Ordner liegen. Also, wenn du eine Fehleranalyse durchführen willst, beschreibe die Voraussetzungen und was falsch ist. Dann kann man von der Ferne eher drauf kommen wo es hakt.
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5600
Registriert: 19. Apr 2008, 00:14


Zurück zu Word Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste