Hallo prohell,
hier ein Beispiel code, der alle Excel-Datei-Verknüpfungen der aktiven Arbeitsmappe abarbeitet und dabei nach der jüngsten Arbeitsmappe im jeweiligen Verzeichnis sucht und die Quelle des Links wechselt, wenn die jüngste Datei einen anderen Namen hat.
Gruß
Franz
Sub Verknuepfung\_QuelleWechseln()
Dim wb As Workbook, varVerknuepfung
Dim strVerzeichnisVerkn As String, strDateiVerkn As String
Dim varVerknuepfungNeu
Set wb = ActiveWorkbook
For Each varVerknuepfung In wb.LinkSources(Type:=xlExcelLinks)
strVerzeichnisVerkn = Left(varVerknuepfung, \_
VBA.InStrRev(varVerknuepfung, Application.PathSeparator))
strDateiVerkn = VBA.Mid(varVerknuepfung, Len(strVerzeichnisVerkn) + 1)
varVerknuepfungNeu = JuengsteDatei(strVerz:=strVerzeichnisVerkn, strSuch:="\*.xls\*")
MsgBox "Alt: " & varVerknuepfung & vbLf \_
& "Neu: " & varVerknuepfungNeu, vbOKOnly, "Wechseln Verknüpfung" 'Testzeile
If varVerknuepfungNeu "" And varVerknuepfung varVerknuepfungNeu Then
wb.ChangeLink Name:=varVerknuepfung, NewName:=varVerknuepfungNeu, Type:=xlLinkTypeExcelLinks
End If
Next
End Sub
Function JuengsteDatei(strVerz, strSuch As String) As String
Dim strDatei As String, strScratch As String
strScratch = Dir(strVerz & strSuch)
strDatei = strScratch
Do While strScratch ""
If FileDateTime(strVerz & strDatei) "" Then
JuengsteDatei = strVerz & strDatei
Else
JuengsteDatei = ""
MsgBox "keine Datei gefunden"
End If
End Function