Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
652to656
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
652to656
652to656
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

XL-Verweise mit VBA auflisten

XL-Verweise mit VBA auflisten
18.08.2005 08:29:25
US
Hallo,
mit folgendem Code kann man die Verweise von Zellen auf andere Mappen recht schnell in eine Listbox (lstVerweise) aufnehmen und in einer Form anzeigen lassen.
aLinks = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(aLinks) Then
For i = 1 To UBound(aLinks)
Me.lstVerweise.AddItem aLinks(i)
Next i
End If
Kann mir jemand sagen, ob man auch die Quelle dazu finden kann, in welcher Tabelle und Zelle dieser Verweis hinterlegt ist ? Ich finde nichts dazu und
das Excel Menü "Bearbeiten-Verknüpfungen" hat diese Information nicht.
Gruß
Ulrich

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: XL-Verweise mit VBA auflisten
18.08.2005 10:28:59
Ramses
Hallo
meinst du in etwa sowas ?
Und das wäre der Code für die Userform
Private Sub CommandButton1_Click()
Dim alinks()
Dim i As Integer
alinks = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(alinks) Then
    For i = 1 To UBound(alinks)
        Me.ListBox1.AddItem alinks(i)
        Call LinkSeek("" & alinks(i) & "")
        Debug.Print alinks(i)
    Next i
End If
End Sub

Private Sub LinkSeek(lnkString As String)
'by Ramses
'Sucht in der gesamten Mappe nach einem Link und schreibt die
'gefundene Adresse in die Listbox Spalte 2
Dim wks As Worksheet
Dim rng As Range
Dim sAddress As String
For Each wks In Worksheets
    Set rng = wks.Cells.Find(What:=lnkString, _
        LookAt:=xlPart, LookIn:=xlFormulas)
    If Not rng Is Nothing Then
        sAddress = rng.Address
        Do
            Application.Goto rng, True
            Me.ListBox1.AddItem
            If chkWksName(wks.Name) = False Then
                Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = wks.Name
            End If
            Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = rng.Address
            Set rng = wks.Cells.FindNext(after:=ActiveCell)
            If rng.Address = sAddress Then Exit Do
        Loop
    End If
    NextStart:
Next wks
MsgBox prompt:="Keine neue Fundstelle!"
End Sub

Private Function chkWksName(wksString) As Boolean
'by Ramses
Dim i As Integer
With Me.ListBox1
    For i = 0 To .ListCount - 1
        Debug.Print .List(i)
        If .List(i, 1) = wksString Then
            chkWksName = True
            Exit Function
        End If
    Next i
End With
chkWksName = False
End Function

Gruss Rainer
Anzeige
AW: XL-Verweise mit VBA auflisten
18.08.2005 10:53:56
US
Hi Rainer,
danke für Deine Hilfe, aber es klappt noch nicht ganz.
In der Zelle steht z.B. folgendes:
='H:\[test1111.xls]Tabelle1'!$A$1
Der Link heißt dadurch H:\test1111.xls
da das nicht identisch ist, findet das Makro die Quelle auch nicht.
Hast Du eine Idee ?
Viele Grüße
Ulrich
AW: XL-Verweise mit VBA auflisten
18.08.2005 11:37:53
Ramses
Hallo
OK :-) Einverstanden
Ändere den Code für die Schalftfläche wie folgt:
Private Sub CommandButton1_Click()
    Dim alinks()
    Dim i As Integer, x As Integer, n As Integer, m As Integer
    Dim srcString As String
    alinks = ActiveWorkbook.LinkSources(xlExcelLinks)
    If Not IsEmpty(alinks) Then
        For i = 1 To UBound(alinks)
            srcString = ""
            Me.ListBox1.AddItem alinks(i)
            If InStr(1, alinks(i), "\") > 0 Then
                'für alle EXCEL Versionen
                For x = Len(alinks(i)) To 1 Step -1
                    Debug.Print Mid(alinks(i), x, 1)
                    If Mid(alinks(i), x, 1) = "\" Then
                        n = x
                        m = InStr(1, alinks(i), "xls") + 2
                        srcString = Left(alinks(i), x) & "[" & Mid(alinks(i), x + 1, m - x) & "]"
                        Debug.Print srcString
                        Call LinkSeek(srcString)
                        Exit For
                    End If
                Next x
            Else
                Call LinkSeek("" & alinks(i) & "")
            End If
        Next i
    End If
End Sub

Gruss Rainer
Anzeige
AW: XL-Verweise mit VBA auflisten
18.08.2005 12:28:19
US
Hi Raier,
das ist genial !
Vielen Dank
Ulrich

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige