fehlende Verknüpfung aufspüren
#1
Hallo,

ich habe hier eine Suchroutine die alle Dateien und deren Tabellen eines Ordner nach bestimmten Suchkriterien durchsucht und die Suchergebnisse entsprechend auflistet.
Soweit so gut und das funktioniert auch wunderbar und sehr zuverlässig, nur - und jetzt das Problem - findet sich in irgend einem Tabellenblatt eine Verknüpfung/Bezug zu einer Quelle die nicht mehr existiert bzw. an dem vermeintlichen Ort existiert, dann erscheint der Hinweis "Diese Arbeitsmappe enthält Verknüpfungen zu mindestens einer externen Quelle, die möglicherweise nicht sinder sind.". Schließt man dann diesen Hinweis so geht die Sucher munter weiter und bringt auch dann die entsprechenden gewünschten Ergebnisse.
Aber:
Erstens nervt es, diesen Hinweis möglicherweise bei einer Vielzahl von Dateien jedesmal schließen zu müssen und
Zweitens sollten diese fehlerhaften bzw. falschen Bezüge bereinigt werden.

Wie kann man die Quelle anzeigen lassen, wo diese Verknüpfungen vorhanden sind?
Mit On Error habe ich keinen Erfolg verbuchen können, denn es handelt sich offensichtlich nicht um eine Fehlermeldung doch durch was wird dieser Hinweis ausgelöst und wie kann man diese Stelle lokalisieren?

Für zielführende Hinweise wäre ich sehr dankbar.
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Top
#2
Hallo Günter

Möglichkeiten zum Auffinden von Verknüpfungen zu anderen Arbeitsmappen
- Suchen nach Dateiendungen (z.B. xls, xlsx, xlsm).
- Daten -> Verbindungen -> Verbindungen
- Formeln -> Namensmanager
- Bedingte Formatierungen (ab XL2010)
- Gültigkeitsprüfung (ab XL2010)

Blogeintrag bei contextures.com
Blogeintrag bei excelnova.org
Blogeintrag bei exceldashboardtemplates.com
Blogeintrag bei trumpexcel.com

AddIn Findlink

http://nhsexcel.com/how-to-break-resista...-in-excel/
http://superuser.com/questions/915270/fo...t-be-found
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Top
#3
Hi,

gleiches siehe auch hier im Forum:
Auffinden von Verknüpfungen zu anderen Arbeitsmappen
Top
#4
Nett.  :21:
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Top
#5
Moin,
ich hatte das gleiche Problem.

Wenn das Fenster mit der Aktualisierung erscheint, habe ich auf aktualisieren geklickt.
Da kam ein Fenster mit weiter oder Verknüpfung bearbeiten, auf Verknüpfung bearbeiten geklickt
Dann wurde mir die Verknüpfung angezeigt und ich konnte die Quelle ändern, öffnen oderdie Verknüpfung löschen.
Beste Grüße
Thomas
Top
#6
Hallo,

danke für die Antworten, leider gut und schön, jedoch nicht treffend!

Wenn der Hinweis aufgeht, gibt es nur die Buttons "Aktualisieren", "Nicht aktualisieren" und "Hilfe"! Das mit dem "Bearbeiten" kenne ich in einer einzelnen Arbeitsmappe, hier läuft aber ein VBA-Code im Hintergrund und der wird nur durch diesen Hinweis unterbrochen und anschließen, egal was man antwortet, weiter abgearbeitet.

Deshalb suche ich die Möglichkeit, die auslösende Quelle für diesen Hinweis per VBA zu orten. Dabei genügt der Dateiname, denn die Verknüpfung kann dann ja manuell in dieser gelöscht werden. Entstanden sind die Verknüpfungen durch Kopieren und Verschieben von Datenbereichen und damit eigentlich sinnlos.
Allerdings habe ich noch nicht alle von shift-del angebotenen Links durchforstet, ob da ein brauchbarer Hinweis dabei ist.
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Top
#7
Ich bin jetzt nicht der Profi,
aber mach doch mal ne Kopie und entferne den Code.
Und wenn du dann wieder die Datai öffnest solltest du eigentlich an die Verknüpfung kommen.
Ob das klappt weiß ich nicht, aber einen Versuch wäre es wert.
Beste Grüße
Thomas
Top
#8
Du verrätest uns nicht wie das Workbook geöffnet wird ????



Code:
Sub M_snb()
   With Workbooks.Open("G:\OF\beispiel.xlsx", False)
   
   
   End With
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#9
Hallo snb,

doch ich verrate den Code der die Dateien einzeln öffnen, durchforstet und dann wieder schließt.

Ich denke, es ist nur dieser Ausschnitt wichtig und habe deshalb aus dem komplexen Projekt nur diesen Teil hier eingestellt:

Code:
    For i = 1 To UBound(strDateien)
        With Workbooks.Open(strDateien(i))
            z = Left(ActiveWorkbook.Name, 4)
            On Error GoTo 0
            For Each ws In ActiveWorkbook.Worksheets
                If Left(ws.Name, 2) <> "AW" And _
                            ws.Name <> "Konten" And _
                   Left(ws.Name, 1) <> "." And _
                            ws.Name <> "Steuer" And _
                   Left(ws.Name, 3) <> "Neu" And _
                   Left(ws.Name, 5) <> "Anlei" Then       'Kontenblätter von der Suche ausschließen
                    With ws.Range(ws.Cells(4, SuchSpalte(1)), ws.Cells(65536, SuchSpalte(1)))
                        If IsNumeric(SuchKrit(1)) Then
                            Set c = .Find(CDbl(SuchKrit(1)), LookAt:=xlWhole, LookIn:=xlFormulas)
                        Else
                            Set c = .Find(SuchKrit(1), LookAt:=xlPart, LookIn:=xlValues)
                        End If
                        If Not c Is Nothing Then
                            firstAddress = c.Address
                            Do
                                x = c.Row
                                If k = 1 Then
                                    Auslesen
                                Else
                                    merker = 0
                                    For p = 2 To k
                                        'If Sheets(ws.Name).Cells(x, SuchSpalte(p)) = SuchKrit(p) Then
                                        If InStr(1, Sheets(ws.Name).Cells(x, SuchSpalte(p)), SuchKrit(p)) Then
                                            merker = merker + 1
                                        End If
                                    Next p
                                    If merker = k - 1 Then Auslesen
                                End If
                                If j > 1000 Then Exit For
                                Set c = .FindNext(c)
                            Loop While Not c Is Nothing And c.Address <> firstAddress
                        End If
                    End With
                End If
            Next
            Application.DisplayAlerts = False
            ActiveWorkbook.Close
        End With
    Next i

Mit On Error Goto Fehlerhandling vor oder nach dem Workbook.Open passiert nichts, es kommt der vorgenannte Hinweis und weiter geht es im Code.
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Top
#10
Hallo Günter,

vielleicht so? (ungetestet und nochmals geändert siehe Änderungsdatum)

Code:
       With Workbooks.Open(strDateien(i), UpdateLinks:=3)
Gruß Stefan
Win 10 / Office 2016
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste