AW: externe Verknüpfungen finden
19.11.2008 20:22:35
Erich
Hi Susanne,
vielleicht versteckt sich der Verweis auf eine externe Mappe ja in einem Namen.
Probier mal folgenden Code, den ich von Hajo übernommen habe:
Option Explicit
Sub Verknüpfte_Zellen() ' Verknüpfungen auflisten
' nach'* H. Ziplies
'* 22.08.03, 24.04.04; 31.07.05; 18.10.05
'* erstellt von Hajo.Ziplies@web.de
'* http://home.media-n.de/ziplies/
' geänd. von Erich G. 20.07.2008
Dim RaZelle As Range, ByMldg As Integer, Sh As Worksheet
Dim namN As Name, zz As Long
For Each Sh In Worksheets
If Sh.Name = "Verknüpfungen" Then
ByMldg = MsgBox("Tabelle Verknüfungen schon vorhanden - Löschen?", _
vbYesNo + vbQuestion, "Löschabfrage ?", "", 0)
If ByMldg 6 Then Exit Sub
Sh.Cells.Clear
Exit For
End If
Next Sh
If ByMldg 6 Then _
Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Verknüpfungen"
zz = 1
Cells(zz, 1) = "Zelle"
Cells(zz, 2) = "Tabelle"
Cells(zz, 3) = "Formel"
For Each Sh In Worksheets
If Sh.Name "Verknüpfungen" Then
' Sh.Unprotect ' .unprotect "Passwort"
For Each RaZelle In Sh.UsedRange
If RaZelle.HasFormula And InStr(RaZelle.Formula, ":\") > 1 Then
zz = zz + 1
Cells(zz, 1) = RaZelle.Address(0, 0)
Cells(zz, 2) = Sh.Name
Cells(zz, 3) = "'" & RaZelle.Formula
End If
Next RaZelle
' Sh.Protect ' .Protect "Passwort"
End If
Next Sh
' ------------------------------------------------------------ Namen
zz = zz + 3
Cells(zz, 1) = "Name"
Cells(zz, 2) = "Bezug"
For Each namN In ActiveWorkbook.Names
zz = zz + 1
Cells(zz, 1) = namN.Name
With Cells(zz, 2)
If InStr(namN, "REF") 0 Then
.Value = namN '"Fehlerhaft"
.Font.Bold = True
.Font.ColorIndex = 3
ElseIf InStr(namN, "\") 0 Then
.Value = namN
.Font.Bold = True
.Font.ColorIndex = 4
Else
.Value = Mid(namN, 2)
End If
End With
Next
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort