Beth fragt sich, ob es eine Möglichkeit gibt, festzustellen, ob es andere Arbeitsmappen gibt, die von der Arbeitsmappe abhängen, die sie geöffnet hat. Sie weiß, wie sie die Präzedenzfälle zu ihrer offenen Arbeitsmappe findet, aber nicht die abhängigen.

Beth hat einen neuen Job und möchte nicht riskieren, eine Arbeitsmappe zu bearbeiten, ohne zu wissen, welche anderen Dateien sie möglicherweise beeinflusst.

Wenn Sie über Arbeitsmappe A und Arbeitsmappe B verfügen und Arbeitsmappe B einen Link zu Arbeitsmappe A enthält, ist Arbeitsmappe B von Arbeitsmappe A abhängig und Arbeitsmappe A ist ein Präzedenzfall zu Arbeitsmappe B.

In Arbeitsmappe B finden Sie leicht die in der Arbeitsmappe verwendeten Links. Sie würden wissen, dass Arbeitsmappe A ein Präzedenzfall für Arbeitsmappe B ist. Wie Beth sagte, weiß sie, wie sie diese Informationen herausfinden kann.

In Arbeitsmappe A kann nicht festgestellt werden, dass Arbeitsmappe B einen Link zu Arbeitsmappe A hat und daher von Arbeitsmappe A abhängig ist. Daher können Änderungen an Arbeitsmappe A vorgenommen werden, die sich versehentlich auf Arbeitsmappe B auswirken können. Zum Beispiel Sie Sie können einen benannten Bereich ändern oder ein Arbeitsblatt umbenennen oder Informationen löschen, die Ihrer Meinung nach nicht mehr benötigt werden. Wenn Sie Arbeitsmappe B das nächste Mal öffnen, werden Sie eine böse Überraschung erleben, da die Informationen, von denen sie in Arbeitsmappe A abhingen, nicht mehr verfügbar waren.

Einige Änderungen, die Sie in Arbeitsmappe A vornehmen, wirken sich möglicherweise nicht auf Arbeitsmappe B aus. Beispielsweise sollten Sie in der Lage sein, Arbeitsblätter hinzuzufügen, benannte Bereiche hinzuzufügen und möglicherweise Spalten oder Zeilen einzufügen. In all diesen Fällen kann sich Excel auf natürliche Weise an die Änderungen anpassen, ohne die Arbeitsmappe B zu beeinflussen. Das Problem ist, dass Sie erst dann später wissen, ob ein negativer Effekt aufgetreten ist, wenn Sie die Arbeitsmappe B öffnen. Und Sie würden die Arbeitsmappe B nur dann öffnen, wenn Sie es tun wusste vorher, dass es eine Beziehung zwischen den beiden Arbeitsmappen gab.

Eine Möglichkeit, das Problem zu umgehen, besteht darin, alle denkbaren Arbeitsmappen gleichzeitig zu öffnen und dann mithilfe der Überwachungstools in Excel nach Abhängigkeiten zu suchen. Dies kann gut funktionieren, wenn Sie eine sehr begrenzte Anzahl von Arbeitsmappen auf Ihrem System haben. Es funktioniert nicht so gut, wenn Sie viele Arbeitsmappen haben oder wenn sich die Arbeitsmappen in einem Netzwerk befinden.

Wenn sich Ihre Arbeitsmappen an einem festgelegten Speicherort auf Ihrem lokalen System befinden (alle in einem einzigen Ordner), können Sie versuchen, die Abhängigkeiten mithilfe eines Makros zu ermitteln. Die folgenden Schritte durchlaufen alle Excel-Arbeitsmappen in einem bestimmten Verzeichnis und identifizieren Arbeitsmappen, die durch Formeln mit Ihrer aktuell geöffneten Arbeitsmappe verknüpft sind.

Sub DiscoverDependentFiles()

Dim i As Integer     Dim iFile As String     Dim fLink As Variant     Dim sLink As String     Dim myFldr As String     Dim curFile As String

'Change the string here to look     'for a different link / file name     sLink = "[FileA.xlsm]"

curFile = ThisWorkbook.Name     'Change the string here to look     'in a different folder     myFldr = "C:\Users\User\mySub\"



'Look for both xlsx and xlsm extensions     iFile = Dir(myFldr & "*.xls?", vbNormal)

i = 1     'Loop through all of the files in the folder     Do While iFile <> ""

If iFile <> curFile Then             Workbooks.Open Filename:=myFldr & iFile             Set fLink = Cells.Find(What:=sLink, _               After:=ActiveCell, LookIn:=xlFormulas, _               LookAt:=xlPart, SearchOrder:=xlByRows, _               SearchDirection:=xlNext, MatchCase:= _               False, SearchFormat:=False)

If UCase(TypeName(fLink)) <> UCase("Nothing") Then                 Windows(curFile).Activate                 'Record names of dependent files                 'in your open workbook                 Worksheets(1).Range("D" & (i)).Value = _                   ActiveWorkbook.Name                 i = i + 1             End If             Workbooks(iFile).Close False         End If         iFile = Dir     Loop End Sub

Dieser Ansatz sollte in einfachen Situationen gut funktionieren. In einigen Fällen kann ein solches Makro jedoch nur eine Teillösung darstellen, da Links an zahlreichen Stellen ausgeblendet werden können – in Excel-Namen, Textfeldern, Diagrammen und anderen Objekten. Es besteht immer die Möglichkeit, dass etwas nicht überprüft wird. Das Ergebnis ist, dass Sie möglicherweise eine Sicherungskopie der Arbeitsmappendatei erstellen möchten, bevor Sie Änderungen vornehmen, da sich Ihre Änderungen auf andere Arbeitsmappen auswirken können, die von der zu ändernden abhängig sind.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (7799) gilt für Microsoft Excel 2007, 2010, 2013 und 2016.

Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: