Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: externe Verknüpfungen finden

externe Verknüpfungen finden
19.11.2008 15:51:54
susanne
Hallo,
ich habe große Excelmappen, in die ich schon mal ab und zu etwas aus einer anderen Mappe hineinkopiere.
Nun bekomme ich beim Öffnen die Meldung, ob ich die Daten aktualisieren soll.
Nein, will ich nicht. Irgendwo habe ich bei einer Formel nicht aufgepasst und es existiert noch irgendwo eine Verbindung zu einer anderen MAppe.
Aber wie kann ich herausfinden, in welchem Feld eine externe Verknüpfung zu finden ist? Ich kann ja nicht Tausende von Feldern anknipsen!
Die vergebenen Namen habe ich schon geprüft, hier ist nichts.
Gibt es vielleicht ein Makro, das alle Felder kennzeichnet, die eine Verbindung zu einer externen Mappe haben? So was wäre ideal!!!
Liebe Grüße
Susanne
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: externe Verknüpfungen finden
19.11.2008 15:55:00
Ron
Hallo Susanne,
ich mach das mit diesem Makro und das funtz auch ganz gut.

Sub Verknuepfungen_Suchen()
'Sucht in der aktiven Arbeitsmappe nach externen Formeln und schreibt diese in ein neues
'Arbeitsblatt; sinnvoll, wenn man in einer Arbeitsmappe nach unbekannten Verknüpfungen sucht
Dim s As Object
For Each s In Sheets
s.Visible = True
Next
ws = ActiveWorkbook.Worksheets.Count
For c = 1 To ws
Sheets(c).Select
n = ActiveSheet.Name
n2 = "Formeln_" & n
FIndex = False
z = 2
Set r1 = Range("a1", Range("a1").SpecialCells(xlLastCell))
For Each a In r1.Cells
If a.HasFormula Then
If InStr(a.Formula, "[") > 0 Then
If FIndex = False Then
Worksheets.Add after:=Sheets(n)
ActiveSheet.Name = n2
Kopf = Array("Zelle", "Zeile", "Spalte", "Formel")
For t = 1 To 4
Cells(1, t) = Kopf(t - 1)
Cells(1, t).Font.Bold = True
Next t
FIndex = True
End If
Sheets(n2).Cells(z, 1) = a.Address(rowabsolute:=False, columnabsolute:=False)
Sheets(n2).Cells(z, 2) = a.Row
Sheets(n2).Cells(z, 3) = a.Column
Sheets(n2).Cells(z, 4) = "'" & a.Formula
z = z + 1
End If
End If
Next a
Columns("A:D").EntireColumn.AutoFit
Range("A1").Select
Next c
End Sub


gruß Ron

Anzeige
AW: externe Verknüpfungen finden
19.11.2008 16:00:29
susanne
Im Prinzip ist das schon prima, aber es nützt mir eigentlich nichts, wenn die Formeln in ein neues Arbeitsblatt geschrieben werden, ich möchte erkennen, in welchem Feld sie sind, damit ich sie auf die aktuelle Arbeitsmappe umändern kann.
Oder hab ich das jetzt falsch verstanden?
AW: externe Verknüpfungen finden
19.11.2008 16:04:43
Ron
ich habe das makro schon ne weile nicht mehr benutzt aber wenn ich mich recht erinnere wird in der neuen Tabelle ein bericht erstellt der zeigt in welcher zelle auf welchem Arbeitsblatt welche verknüpfung liegt. dann geht man in diese zelle und löscht einfach die Verknüpfung raus oder stimmt das nicht was ich schreibe.
gruß ron
Anzeige
AW: externe Verknüpfungen finden
19.11.2008 16:09:00
susanne
oh, das wäre super!, das probiere ich morgen aus!
Vielen Dank!!!
Liebe Grüße
Susanne
AW: externe Verknüpfungen finden
19.11.2008 16:10:44
Ron
alles klar ich schau morgen dann noch mal vorbei.
gruß ron
AW: externe Verknüpfungen finden
19.11.2008 16:10:42
robert
hallo,
probier mal diesen code, ob er das bringt,was du willst
gruß
rofu

Sub ZeigeVerknuepfungen()
Dim Tab1 As Object
Dim Zelle1 As Object
Dim AlleFormeln As Object
Dim NeuesBlatt As Worksheet
Dim Zeile As Integer
On Error GoTo 0
Set NeuesBlatt = ActiveWorkbook.Worksheets.Add(ActiveWorkbook.Worksheets(1))
On Error Resume Next
NeuesBlatt.Name = "Externe Verknüpfungen"
NeuesBlatt.Range("a3").Formula = "Arbeitsblatt"
NeuesBlatt.Range("b3").Formula = "Zelle"
NeuesBlatt.Range("c3").Formula = "Externer Bezug"
NeuesBlatt.Range("d3").Formula = "Aktueller Wert"
NeuesBlatt.Range("a1").Font.Bold = True
NeuesBlatt.Range("a3:d3").Font.Bold = True
Zeile = 4
Application.ScreenUpdating = False
For Each Tab1 In ActiveWorkbook.Worksheets
If Tab1.Name  NeuesBlatt.Name Then
Set AlleFormeln = Nothing
Set AlleFormeln = Tab1.Cells.SpecialCells(xlFormulas, 23)
'MsgBox (AlleFormeln)
If AlleFormeln Then
For Each Zelle1 In AlleFormeln
If InStr(Zelle1.Formula, "\") > 0 Then
'MsgBox (Zelle1)
'If Tab1.Name  NeuesBlatt.Name Then
NeuesBlatt.Cells(Zeile, 1).Formula = Tab1.Name
NeuesBlatt.Cells(Zeile, 2).Formula = Zelle1.AddressLocal(False, False)
NeuesBlatt.Cells(Zeile, 3).Formula = Right$(Zelle1.FormulaLocal, Len(Zelle1. _
FormulaLocal) - 2)
NeuesBlatt.Cells(Zeile, 4).Formula = Zelle1.Value
Zeile = Zeile + 1
'End If
'                If Zelle1.HasArray Then
'                    Zelle1.CurrentArray.Select
'                    Selection.Copy
'                    Selection.PasteSpecial Paste:=xlValues
'                    Application.CutCopyMode = False
'                Else
'                    Zelle1.Formula = Zelle1.Value
'                End If
End If
Next Zelle1
End If
End If
Next Tab1
FormatiereDenRest:
For Zeile = 1 To 4
NeuesBlatt.Cells(1, Zeile).EntireColumn.AutoFit
Next
NeuesBlatt.Range("a1").Formula = "Externe Verknüpfungen in " + UCase$(ActiveWorkbook.Name)
On Error GoTo 0
'Aufräumen der Tabelle
Zeile = 4
While NeuesBlatt.Cells(Zeile, 1).Text  ""
If NeuesBlatt.Cells(Zeile, 2).Text = "" Then
NeuesBlatt.Cells(Zeile, 2).EntireRow.Delete
Else
Zeile = Zeile + 1
End If
Wend
Application.ScreenUpdating = True
If Zeile = 4 Then
a = MsgBox("Keine externen Verknüpfungen gefunden", vbOKOnly, "Keine Verknüpfungen")
Application.DisplayAlerts = False
NeuesBlatt.Delete
Application.DisplayAlerts = True
End If
Application.ScreenUpdating = True
Exit Sub
FehlerVerknüpfungAuflösen:
If Err = 1004 Then Resume Next Else MsgBox ("Keine Zellen mit externen Verknüpfungen  _
gefunden")
GoTo FormatiereDenRest
End Sub


Anzeige
AW: externe Verknüpfungen finden
19.11.2008 16:16:00
Ron
hallo rofu,
habe deinen vba-code gleich mal getestet. Aber bei mir findet er nichts. Warum kann ich leider nicht ergründen.
gruß ron
AW: externe Verknüpfungen finden
19.11.2008 17:02:00
robert
hallo ron,
blöde frage- sind verknüpfungen in der datei vorhanden?
bei mir funkt's nämlich
schönen abend
rofu
AW: externe Verknüpfungen finden
19.11.2008 17:23:00
susanne
also ich hab das mal gerade an einer einfachen Datei getestet, die viertletzte Zeile gibt einen Syntaxfehler, auch wenn ichdie fünftletzte Zeile sperre weil Text.
Aber ich habe von VBA sowieso keine Ahnung ;-)
Anzeige
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

Anzeige
AW: externe Verknüpfungen finden
21.11.2008 15:32:00
susanne
Also, ihr seid alle genial.
Lieber Ron,
das Makro funktioniert einwandfrei. Klasse, vielen Dank!
lieber Erich,
vielen Dank, aber das mit den Namen hatte ich ja schon geklärt, da war ja nix.
Ansonsten: JAAAAAAAAAAAAAAAAAAAA, warum kommt man nie auf das Naheliegende?
Klar: Suchfunktion!!!!! Wald und Bäume? Excelmania?
Das Makro hatte hier aber folgenden Vorteil: Man konnte auf einen Blick die Felder mit den Verknüpfungen sehen. Hätte ich mich der Suchfunktion begonnen, hätte ich unter Umständen oft klicken können, bis ich alles gefunden hätte.
Das mit den Bearbeiten-Verknüpfungen-Quelle löschen: Ja klar, aber ich lese doch lieber vorher, WAS ich da so lösche und ändere ;-)
Jedenfalls: Betrachtet euch alle mal als geknuddelt!!!! ;-))))
Liebe Grüße
Susanne
Anzeige
AW: externe Verknüpfungen finden
20.11.2008 00:46:00
Daniel
Hi
wenn es sich um normale externe Zellbezüge handelt, dann kannst du diese auch über die normale SUCHEN-Funktion finden lassen, einfach nach einem Typischen Zeichenfolge, z.B. ".xls" oder ":\" suchen, dabei folgende Parameter einstellen:
- Suchen: Arbeitsmappe
- Suchen in: Formeln
- Gesamten Zellinhalt vergleichen: nein
- Alle anzeigen
das funktioniert allerdins nur für Exteren Verknüpfungen in Formeln, falls sich diese in NAMEN befinden, musst du diese von Hand einzeln prüfen.
falls es nur darum geht, die Verknüpfungen zu kappen, gibt auch die Funktion BEARBEITEN - VERKNÜPFUNGEN - VERKÜPFUNGEN LÖSEN.
Wobei ich allerdins nicht weiß, ob das schon in Excel 2000 implementiert ist.
gruß, Daniel
Anzeige
AW: externe Verknüpfungen finden
20.11.2008 13:08:00
Rudi
Hallo,
warum nicht einfach Bearbeiten-Verknüpfungen-Quelle löschen?
Gruß
Rudi
AW: externe Verknüpfungen finden
21.11.2008 15:34:47
susanne
Mist, hatte meine Nachricht an der falschen Stelle platziert. Hier also nochmal!!!
Also, ihr seid alle genial.
Lieber Ron,
das Makro funktioniert einwandfrei. Klasse, vielen Dank!
lieber Erich,
vielen Dank, aber das mit den Namen hatte ich ja schon geklärt, da war ja nix.
Ansonsten: JAAAAAAAAAAAAAAAAAAAA, warum kommt man nie auf das Naheliegende?
Klar: Suchfunktion!!!!! Wald und Bäume? Excelmania?
Das Makro hatte hier aber folgenden Vorteil: Man konnte auf einen Blick die Felder mit den Verknüpfungen sehen. Hätte ich mich der Suchfunktion begonnen, hätte ich unter Umständen oft klicken können, bis ich alles gefunden hätte.
Das mit den Bearbeiten-Verknüpfungen-Quelle löschen: Ja klar, aber ich lese doch lieber vorher, WAS ich da so lösche und ändere ;-)
Jedenfalls: Betrachtet euch alle mal als geknuddelt!!!! ;-))))
Liebe Grüße
Susanne
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Externe Verknüpfungen in Excel finden


Schritt-für-Schritt-Anleitung

Um externe Verknüpfungen in Excel zu finden, kannst Du verschiedene Methoden nutzen. Eine der effektivsten Methoden ist der Einsatz von VBA-Makros. Hier ist eine Schritt-für-Schritt-Anleitung, um externe Verknüpfungen zu finden:

  1. Öffne die Excel-Datei, in der Du nach externen Verknüpfungen suchen möchtest.

  2. Drücke Alt + F11, um den VBA-Editor zu öffnen.

  3. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  4. Kopiere den folgenden VBA-Code in das Modul:

    Sub Verknuepfungen_Suchen()
       Dim s As Object
       For Each s In Sheets
           s.Visible = True
       Next
       ws = ActiveWorkbook.Worksheets.Count
       For c = 1 To ws
           Sheets(c).Select
           n = ActiveSheet.Name
           n2 = "Formeln_" & n
           FIndex = False
           z = 2
           Set r1 = Range("a1", Range("a1").SpecialCells(xlLastCell))
           For Each a In r1.Cells
               If a.HasFormula Then
                   If InStr(a.Formula, "[") > 0 Then
                       If FIndex = False Then
                           Worksheets.Add after:=Sheets(n)
                           ActiveSheet.Name = n2
                           Kopf = Array("Zelle", "Zeile", "Spalte", "Formel")
                           For t = 1 To 4
                               Cells(1, t) = Kopf(t - 1)
                               Cells(1, t).Font.Bold = True
                           Next t
                           FIndex = True
                       End If
                       Sheets(n2).Cells(z, 1) = a.Address(rowabsolute:=False, columnabsolute:=False)
                       Sheets(n2).Cells(z, 2) = a.Row
                       Sheets(n2).Cells(z, 3) = a.Column
                       Sheets(n2).Cells(z, 4) = "'" & a.Formula
                       z = z + 1
                   End If
               End If
           Next a
           Columns("A:D").EntireColumn.AutoFit
           Range("A1").Select
       Next c
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Führe das Makro aus, indem Du Alt + F8 drückst, das Makro Verknuepfungen_Suchen auswählst und auf Ausführen klickst.

Das Makro erstellt ein neues Arbeitsblatt, in dem alle Zellen mit externen Verknüpfungen aufgelistet sind.


Häufige Fehler und Lösungen

  • Fehler: "Syntaxfehler" beim Ausführen des Makros.

    • Lösung: Überprüfe den VBA-Code auf Tippfehler und stelle sicher, dass alle Klammern und Anführungszeichen korrekt gesetzt sind.
  • Fehler: "Keine externen Verknüpfungen gefunden".

    • Lösung: Vergewissere Dich, dass es tatsächlich externe Verknüpfungen in der Datei gibt. Manchmal sind sie in Namensdefinitionen versteckt.
  • Fehler: Makro findet keine externen Verknüpfungen.

    • Lösung: Stelle sicher, dass Du in der richtigen Arbeitsmappe arbeitest und dass alle Arbeitsblätter sichtbar sind.

Alternative Methoden

Wenn Du keine VBA-Makros verwenden möchtest, kannst Du auch die integrierte Suchfunktion von Excel nutzen:

  1. Drücke Strg + F, um das Suchfenster zu öffnen.
  2. Wähle Optionen aus, um die erweiterten Suchoptionen anzuzeigen.
  3. Setze die Suchkriterien:
    • Suchen in: Formeln
    • Suchen nach: ":\" oder ".xls" (je nach Art der Verknüpfung)
  4. Klicke auf Alle suchen.

Diese Methode zeigt Dir alle Zellen an, die externe Verknüpfungen enthalten.


Praktische Beispiele

Hier sind einige Beispiele, wie Du externe Verknüpfungen in Excel finden kannst:

  • Beispiel 1: Suche nach einer externen Verknüpfung zu einer anderen Datei.

    • Verwende die Suchfunktion und suche nach dem Dateinamen oder dem Typischen Zeichen wie ".xls".
  • Beispiel 2: Verwende das Makro, um alle Zellen mit externen Verknüpfungen aufzulisten.

    • Führe das oben angegebene Makro aus und überprüfe das neu erstellte Arbeitsblatt.

Tipps für Profis

  • Regelmäßige Prüfung: Es ist hilfreich, regelmäßig nach externen Verknüpfungen in Deinen Excel-Dateien zu suchen, um unerwartete Fehler beim Öffnen der Datei zu vermeiden.

  • Verknüpfungen auflösen: Wenn Du keine externen Verknüpfungen mehr benötigst, kannst Du sie über Bearbeiten > Verknüpfungen > Quelle löschen auflösen.

  • Dokumentation der Verknüpfungen: Halte eine Liste von externen Verknüpfungen in einem separaten Arbeitsblatt, um den Überblick zu behalten.


FAQ: Häufige Fragen

1. Wie finde ich schnell externe Verknüpfungen in einer großen Excel-Datei? Verwende das VBA-Makro, um alle externen Verknüpfungen aufzulisten, anstatt manuell durch jede Zelle zu suchen.

2. Was kann ich tun, wenn ich externe Verknüpfungen in Namen habe? Du musst die Namen manuell überprüfen, da die Suche nur in Zellen funktioniert. Verwende den VBA-Code von Erich, um auch die Namen zu überprüfen.

3. Gibt es eine Möglichkeit, alle externen Verknüpfungen auf einmal zu entfernen? Ja, Du kannst Bearbeiten > Verknüpfungen > Quelle löschen verwenden, um alle externen Verknüpfungen in einem Schritt zu entfernen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige