Discussion:
[XL2010] Externe Excel-Links per VBA prüfen
(zu alt für eine Antwort)
Jörg Eisenträger
2014-01-29 22:30:03 UTC
Permalink
Hallo NG,

wie kann ich per VBA prüfen, ob eine Verknüpfung zu einer externen
Excel-Datei aktualisiert werden kann, um ihn dann zu löschen?

Also etwa so:

vAllLinks = ThisWorkbook.LinkSources(xlExcelLinks)

For ii = UBound(vAllLinks) To 1 Step -1
If IstKaputt(vAllLinks(ii)) Then
ThisWorkbook.BreakLink vAllLinks(ii), xlExcelLinks
End If
Next ii

Ich finde die Funktion "IstKaputt" nicht. :-(


Gruß
Jörg
--
"One of the best ways to boost your Excel efficiency is also one of the best ways to shoot yourself in the foot."
(Susan Harkins auf www.techrepublic.com/blog/10things/10-mistakes-to-avoid-when-working-with-multiple-worksheets/1961 )
Claus Busch
2014-01-30 07:02:03 UTC
Permalink
Hallo Jörg,
Post by Jörg Eisenträger
wie kann ich per VBA prüfen, ob eine Verknüpfung zu einer externen
Excel-Datei aktualisiert werden kann, um ihn dann zu löschen?
du könntest das z.B. mit einer Funktion prüfen:

Function FileExists(myCell As Range) As Boolean
Dim strFile As String

strFile = Replace(myCell.Hyperlinks(1).Address, "File///", "")
FileExists = IIf(Dir(strFile) <> "", True, False)
End Function

Wenn die Hyperlnks in A sind, dann die Funktion im Blatt aufrufen mit
=FileExists(A1) und runter ziehen.


Mit freundlichen Grüßen
Claus
--
Win XP Prof SP3 / Vista Ultimate SP2
Office 2003 SP3 /2007 Ultimate SP3
Jörg Eisenträger
2014-01-30 19:38:17 UTC
Permalink
Post by Claus Busch
Post by Jörg Eisenträger
wie kann ich per VBA prüfen, ob eine Verknüpfung zu einer externen
Excel-Datei aktualisiert werden kann, um ihn dann ggf. zu löschen?
Function FileExists(myCell As Range) As Boolean
Hallo Claus,

hab das Problem wohl zu kurz beschrieben. Es geht nicht um Formeln in
Zellen, sondern vermutlich in Diagrammen. Das heißt, ich weiß nicht, wo
die Verknüpfungen stecken. Deshalb möchte ich die Menge der
ThisWorkbook.LinkSources(xlExcelLinks) durchlaufen und überprüfen. Haben
die keine Eigenschaft wie IsBroken oder so etwas ähnliches?


Gruß
Jörg
--
"One of the best ways to boost your Excel efficiency is also one of the best ways to shoot yourself in the foot."
(Susan Harkins auf www.techrepublic.com/blog/10things/10-mistakes-to-avoid-when-working-with-multiple-worksheets/1961 )
Claus Busch
2014-01-30 19:46:43 UTC
Permalink
Hallo Jörg,
Post by Jörg Eisenträger
hab das Problem wohl zu kurz beschrieben. Es geht nicht um Formeln in
Zellen, sondern vermutlich in Diagrammen. Das heißt, ich weiß nicht, wo
die Verknüpfungen stecken. Deshalb möchte ich die Menge der
ThisWorkbook.LinkSources(xlExcelLinks) durchlaufen und überprüfen. Haben
die keine Eigenschaft wie IsBroken oder so etwas ähnliches?
bei Hyperlinks musst du die Adresse oder Subadresse auf Richtigkeit
prüfen.
Ich dachte, es ginge um Hyperlinks zu Dateien, deswegen das Überprüfen
des Pfades in der Adresse.
Hast du die Hyperlinks in Zellen kannst du sie z.B. durchlaufen mit:
For Each RngZelle In Sheets("Tabelle1").Range("A1:A100")
If RngZelle.Hyperlinks.Count = 1 Then

Wenn du nicht weißt in welchem Bereich sie sind, kannst du sie
durchlaufen mit:
With ActiveSheet
For i = 1 To .Hyperlinks.Count


Mit freundlichen Grüßen
Claus
--
Win XP Prof SP3 / Vista Ultimate SP2
Office 2003 SP3 /2007 Ultimate SP3
Lesen Sie weiter auf narkive:
Loading...