Das Archiv des Excel-Forums

Externe Verknüpfungen

Bild

Betrifft: Externe Verknüpfungen
von: Johann

Geschrieben am: 26.04.2008 12:22:14

Hallo Excel-Könner!
Ich habe externe Verknüpfungen, die nicht beim Öffnen, sondern nur bei Bedarf mittels Makro aktualisiert werden sollen.
Dabei ist die Quelldatei geschlossen.
Ich habe "Bearbeiten-Verknüpfungen-Eingabeaufforderung beim Start" auf "Keine Warnung anzeigen und Verknüpfungen nicht aktualisieren" gestellt.
Mit
"ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources"
kann ich zwar aktualisieren, es erscheint aber immer das Explorerfenster zum Auswählen/Ändern der Quelldatei (die Datei ist vorhanden).
Wie kann ich per VBA die Daten aktualisiern und das Explorerfenster nur anzeigen lassen, wenn die Quelldatei nicht bekannt ist?
Herzlichsten Dank im Voraus
Johann

Bild

Betrifft: AW: Externe Verknüpfungen
von: Bernd
Geschrieben am: 26.04.2008 12:39:49
Hallo Johann,
ich kenne das Problem auch, das tritt aber nur auf, wenn sich irgend etwas in der Linkadresse geändert hat, und sei es nur ein zusätzliches Leerzeichen.
Bist du >> absolut << sicher, nichts an der Linkadresse oder dem Ordner, wo die Daten liegen, geändert zu haben???
Grüße
Bernd

Bild

Betrifft: Nix verändert
von: Johann

Geschrieben am: 26.04.2008 13:00:52
Hallo Bernd!
Ich habe das jetzt so an die 10 mal versucht: Quelldatei nicht verändert - Zieldatei neu geöffnet - Daten aktualisiert - gespeichert und geschlossen - neu geöffnet ..... Dabei ist es mir ein Mal geglückt.
Die manuelle Aktualisierung über "Bearbeiten - Verknüpfungen - " geht immer ohne Nachfrage.
Gibt es da vielleicht noch eine andere Möglichkeit ?
Schöne Grüße
Johann

Bild

Betrifft: AW: Verknüpfungen einzeln aktualisieren
von: Erich G.
Geschrieben am: 26.04.2008 16:01:10
Hallo Johann,
vielleicht ist nur eine oder ein Teil deiner Quellmappen betroffen und du kannst mit diesem Code
die Schuldige(n) herausfinden:


Sub aTst()
Dim aLinks, ii As Integer
aLinks = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(aLinks) Then
For ii = 1 To UBound(aLinks)
MsgBox "Aktualisiere " & aLinks(ii)
ActiveWorkbook.UpdateLink Name:=aLinks(ii)
Next ii
End If
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Bild

Betrifft: AW: Verknüpfungen einzeln aktualisieren
von: Johann

Geschrieben am: 26.04.2008 16:18:22
Jawohl Erich!
Du hast den Nagel auf den Kopf getroffen. Bei der manuellen Aktualisierung kann man sich ja die Quelldatei aussuchen, die aktualisiert werden soll.
Mit VBA werden immer alle Verknüpfungen aktualisiert. Wenn ich die Verknüpfungen auf die 2. Datenquelle wegnehme, funktioniert's.
Gibt es in VBA nicht auch die Möglichkeit, nur eine bestimmte Quelle zu aktualisieren?
Herzlichen Dank und schöne Grüße aus dem Weinviertel
Johann

Bild

Betrifft: AW: Verknüpfungen einzeln aktualisieren
von: Johann
Geschrieben am: 26.04.2008 16:33:23
Hallo Erich!
Die Antwort auf deinen ersten Vorschlag s. oben.
Bleibt noch die Frage:
Gibt es in VBA nicht auch die Möglichkeit, nur eine bestimmte Quelle zu aktualisieren?
Herzlichen Dank und schöne Grüße aus dem Weinviertel
Johann

Bild

Betrifft: AW: Verknüpfungen einzeln aktualisieren
von: Erich G.

Geschrieben am: 26.04.2008 18:02:51
Hi Johann,
hast du dir die Routine mal genau angesehen?
Mit "ActiveWorkbook.UpdateLink Name:=aLinks(ii)"
werden - innerhalb einer Schleife - die Daten aus jeder Quelldatei einzeln aktualisiert.
Mit
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources(xlExcelLinks)(1)
werden nur die Daten aus der 1. Quelldatei aktualisiert, mit
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources(xlExcelLinks)(2)
die Daten Daten aus der 2. Quelldatei usw.
Wenn dir das zu unübersichtlich ist, kannst du das auch so machen:


Sub aTst()
Dim aLinks, ii As Integer
aLinks = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(aLinks) Then
MsgBox "Aktualisiere " & aLinks(1)
ActiveWorkbook.UpdateLink Name:=aLinks(1)
End If
End Sub

oder das Ganze z. B. mit (2) statt (1)
Da ich die Namen deiner Quellmappen natürlich nicht kenne, habe ich sie mit LinkSources() ermittelt.
Du kannst auch ganz einfach per Makroaufzeichnung eine Prozedur erstellen,
die die Verknüpfungen zu einer bestimmten Quellmappe aktualisieren lässt.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Bild

Betrifft: AW: Nix verändert
von: Erich G.
Geschrieben am: 26.04.2008 16:04:38
Hi Johann,
noch eine Möglichkeit: Probier mal
Bearbeiten - Verknüpfungen - Status prüfen
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Bild

Betrifft: AW: Nix verändert
von: Johann

Geschrieben am: 26.04.2008 17:02:38
Text:
Hallo Erich!
Die Antwort auf deinen ersten Vorschlag s. oben.
Bleibt noch die Frage:
Gibt es in VBA nicht auch die Möglichkeit, nur eine bestimmte Quelle zu aktualisieren?
Herzlichen Dank und schöne Grüße aus dem Weinviertel
Johann



 Bild

Excel-Beispiele zum Thema "Externe Verknüpfungen"

Externe Verknüpfungen lokal umleiten download Alle externen Links löschen download
Textdatei als externe Datei per VBA einbinden download Zeichenfolgen über Doppelklick in externen Bezug umwandeln. download
Wert in externer Mappe suchen und mit Format übernehmen. download Alle externen Links löschen und in Werte umwandeln download
Symbolleiste zum Aufruf externer Anwendungen erstellen download