Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1024to1028
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
Inhaltsverzeichnis

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

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 ;-)
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

59 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige