VBA für Excel Verknüpfungen aktualisieren?

... komplette Frage anzeigen

2 Antworten

Ich habe mich jetzt mal etwas mit LinkSources beschäftigt. 
Ich denke, das funktioniert nur bei Verknüpfungen zu anderen Arbeitsmappen.
Schau mal ob Dir hiermit:

Sub Test()
Dim varDat As Variant
varDat = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)
If Not IsEmpty(varDat) Then
For i = 1 To UBound(varDat)
MsgBox "Link " & i & ":" & Chr(13) & varDat(i)
Next i
End If
End Sub

...deine Verknüpfungen überhaupt angezeigt werden.

DaCyphers Lösungsweg scheint mir eigentlich zu passen.

Antwort bewerten Vielen Dank für Deine Bewertung

Meine Idee dazu wäre, dass du gar nicht die Formel änderst, sondern mit =INDIREKT() arbeitest. Du wirst ja wahrscheinlich eine Art Hauptseite haben, wo du halt immer die Daten aus den anderen Tabellenblättern drin haben willst, oder?

Mach doch eine Zelle, wo du einfach den Namen des Tabellenblatts reinschreiben kannst. Z.B. in A1 schreibst du dann "04.2016" rein. In A2 kannst du dann ein ausgeblendetes oder mit weißer Schrift formatiertes Feld machen, was dir den String zum Ziel zusammenbaut (also ="'" & A1 & "'!C8") und an der Stelle, wo die Daten dann drinstehen sollen nimmst du die Formel 

=WENN(ISTFEHLER(INDIREKT(A2));"";INDIREKT(A2))

Wenn du stattdessen trotzdem lieber die Formeln an sich ändern willst, geht das z.B. damit:

Public Sub LinksAktualisieren(Von As String, Nach As String)
Dim alleZellen As Range
Dim aktuelleZelle As Range

Set alleZellen = ActiveSheet.Range("A:IV").SpecialCells(xlCellTypeFormulas) ' Auf dem aktuellen Tabellenblatt nach allen Zellen mit Formeln suchen
For Each aktuelleZelle In alleZellen If InStr(1, aktuelleZelle.Formula, Von) > 1 Then ' Bei jeder Zelle, die zu ändernde Formel ändern aktuelleZelle.Formula = Replace(aktuelleZelle.Formula, Von, Nach) End If Next aktuelleZelle
End Sub
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Biggy2016
28.06.2016, 12:34

Leider ist es nicht ganz das, was ich brauche. Trotzdem vielen Dank für Deine prompte Antwort.

Die Formel muss so bleiben. VBA soll mir "nur" das Datum in allen Verknüpfungen in meinem aktiven Tabellenblatt von '04.2016' auf '06.2016' ändern.

0

Was möchtest Du wissen?