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

Verknüpfte Dateien öffnen und schließen

Forumthread: Verknüpfte Dateien öffnen und schließen

Verknüpfte Dateien öffnen und schließen
08.02.2019 12:58:58
fox060381
Hallo zusammen,
ich habe eine Excel Datei, die mit diversen anderen Excel Dateien verknüpft ist. Zu einer bestimmten Datei wird immer wieder der Bezug verloren, so dass nur noch #WERT! erscheint. Wenn ich dann über Daten => Verknüpfung bearbeiten => Quelle öffne die Datei öffne ziehen sich wieder die Daten. Das ist ziemlich umständlich. Bei den anderen Dateien habe ich den Eindruck, dass sich die Daten nicht immer automatisch aktualisieren.
Um das Problem zu beheben habe ich ein Makro geschrieben, welches alle verknüpften Dateien nacheinander öffnet und schließt. Im Makro habe ich den exakten Speicherort etc. genau angegeben. Leider bringt die Funktion nichts, wenn #WERT! auftaucht. Dann muss ich über Daten => Quelle öffnen die Datei öffnen. Sonst aktualisieren sich die Werte nicht.
Ich habe jetzt im Forum diesen Code gefunden:
Sub ÖffnenUndSchliessenAllerVerknüpftenArbeitsmappen()
Dim Links As Variant
Dim wb As Workbook
Links = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(Links) Then
For i = 1 To UBound(Links)
'Aufruf Aktualisierung ausschalten: ", UpdateLinks:=0"
Set wb = Workbooks.Open(Links(i), UpdateLinks:=0)
'Speicheranfrage unterdrücken:
ActiveWorkbook.Saved = True
wb.Close
Next i
Else
MsgBox "Diese Arbeitsmappe hat keine Verknüpfungen zu anderen Mappen!"
End If
End Sub
Der ist super, leider bricht er immer ab, wenn eine der verknüpften Dateien von einem anderen Benutzer geöffnet ist.
Kann man das irgendwie umgehen? Oder noch besser: Weiß jemand, warum Excel anscheinend die Verknüpfung zu den Dateien verliert?
Die Excel liegt auf einem SharePoint, die anderen Dateien auf dem gleichen oder einem anderen SharePoint und auf zwei unterschiedlichen Netzwerklaufwerken.
Vielen Dank für Eure Hilfe und ein schönes Wochenende!
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verknüpfte Dateien öffnen und schließen
08.02.2019 14:54:33
Bernd
Servus Fox,
da du nur Daten aus den Dateien beziehen möchtest und dort keine hineinschreibst könnte man die Dateien auch immer gleich schreibgeschützt öffnen. Das Makro versucht dann nicht zwangsweise die Schreibrechte zu bekommen. Ob das den Fehler behebt kann ich nicht sagen, schaden kann es jedenfalls nicht :-)
Versuche mal folgendes:

Set wb = Workbooks.Open(Links(i), UpdateLinks:=0, ReadOnly:=True)
Grüße, Bernd
Anzeige
AW: Verknüpfte Dateien öffnen und schließen
08.02.2019 15:16:12
fox060381
Hallo Bernd,
leider löst es nicht das Problem.
Ich bekomme eine Fehlermeldung.
Gruß
Fox
AW: Verknüpfte Dateien öffnen und schließen
08.02.2019 16:09:31
Nepumuk
Hallo Fox,
teste mal:
Public Sub ÖffnenUndSchliessenAllerVerknüpftenArbeitsmappen()
    
    Dim avntLinks As Variant
    Dim lngIndex As Long
    
    Application.ScreenUpdating = False
    
    avntLinks = ThisWorkbook.LinkSources(xlExcelLinks)
    
    If Not IsEmpty(avntLinks) Then
        
        For lngIndex = LBound(avntLinks) To UBound(avntLinks)
            
            Call ThisWorkbook.OpenLinks(avntLinks(lngIndex), ReadOnly:=True, Type:=xlExcelLinks)
            Call Workbooks(Workbooks.Count).Close(SaveChanges:=False)
            
        Next
    End If
    
    Application.ScreenUpdating = True
    
End Sub

Warum sich deine Links nicht aktualisieren kann ich dir nicht sagen.
Gruß
Nepumuk
Anzeige
AW: Verknüpfte Dateien öffnen und schließen
11.02.2019 11:29:14
fox060381
Hallo Nepumuk,
folgendes Problem: Das #Wert!-Problem bleibt bestehen, wenn ich den obigen Code laufen lasse.
Das Problem wird behoben, wenn ich die Dateien nicht wieder automatisiert schließe, sondern manuell.
Kann man da einen Zeitversatz zwischen Öffnen und Schließen einbauen?
Des weiteren haben einige der Dateien beim Öffnen eine MsgBox, die geöffnet wird. Dort gibt es nur ein OK-Feld. Kann ich das irgendwie automatisiert schließen bzw. bestätigen? SendKeys hat nicht funktioniert bisher.
Vielen Dank und eine guten Start in die Woche!
Anzeige
AW: Verknüpfte Dateien öffnen und schließen
11.02.2019 11:55:03
Nepumuk
Hallo Fox,
dann teste mal:
Public Sub ÖffnenUndSchliessenAllerVerknüpftenArbeitsmappen()
    
    Dim avntLinks As Variant
    Dim lngIndex As Long
    Dim enmAutomationSecurity As MsoAutomationSecurity
    
    With Application
        enmAutomationSecurity = .AutomationSecurity
        .AutomationSecurity = msoAutomationSecurityForceDisable
        .EnableEvents = False
        .ScreenUpdating = False
    End With
    
    avntLinks = ThisWorkbook.LinkSources(xlExcelLinks)
    
    If Not IsEmpty(avntLinks) Then
        
        For lngIndex = LBound(avntLinks) To UBound(avntLinks)
            
            Call ThisWorkbook.OpenLinks(avntLinks(lngIndex), ReadOnly:=True, Type:=xlExcelLinks)
            Application.CalculateFullRebuild
            Call Workbooks(Workbooks.Count).Close(SaveChanges:=False)
            
        Next
    End If
    
    With Application
        .AutomationSecurity = enmAutomationSecurity
        .EnableEvents = True
        .ScreenUpdating = True
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Verknüpfte Dateien öffnen und schließen
12.02.2019 08:17:29
fox060381
Hallo Nepumuk,
das funktioniert leider auch nicht.
Der Code verursacht sogar ein noch größeres Problem:
Wenn eine der verknüpften Dateien durch einen anderen Benutzer geöffnet und damit gesperrt ist, geben ALLE Zellen (auch die die mit anderen Dateien verknüpft sind) #NAME? an.
Gruß
Fox
Anzeige
AW: Verknüpfte Dateien öffnen und schließen
12.02.2019 10:23:54
Nepumuk
Hallo Fox,
dann fällt mir nichts mehr ein.
Gruß
Nepumuk
AW: Verknüpfte Dateien öffnen und schließen
13.02.2019 09:49:17
Nepumuk
Hallo Fox,
jetzt ist mir doch noch was eingefallen. Teste mal:
Option Explicit
Public Sub RefreshLinks()
Static sialngIndex As Long
Dim avntLinks As Variant
Dim enmAutomationSecurity As MsoAutomationSecurity
With Application
enmAutomationSecurity = .AutomationSecurity
.AutomationSecurity = msoAutomationSecurityForceDisable
.EnableEvents = False
End With
avntLinks = ThisWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(avntLinks) Then
If sialngIndex = 0 Then sialngIndex = LBound(avntLinks)
If sialngIndex 

Gruß
Nepumuk
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Verknüpfte Dateien in Excel effizient verwalten


Schritt-für-Schritt-Anleitung

Um verknüpfte Excel-Dateien effizient zu öffnen und zu schließen, kannst du ein VBA-Makro verwenden. Folge diesen Schritten:

  1. Öffne die Excel-Datei, die die Verknüpfungen enthält.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Füge ein neues Modul hinzu: Klicke auf Einfügen > Modul.
  4. Kopiere den folgenden Code in das Modul:
Sub ÖffnenUndSchliessenAllerVerknüpftenArbeitsmappen()
    Dim Links As Variant
    Dim wb As Workbook
    Links = ActiveWorkbook.LinkSources(xlExcelLinks)
    If Not IsEmpty(Links) Then
        For i = 1 To UBound(Links)
            Set wb = Workbooks.Open(Links(i), UpdateLinks:=0, ReadOnly:=True)
            ActiveWorkbook.Saved = True
            wb.Close
        Next i
    Else
        MsgBox "Diese Arbeitsmappe hat keine Verknüpfungen zu anderen Mappen!"
    End If
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus: ALT + F8, wähle das Makro aus und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Fehler: #WERT! oder #NAME? angezeigt

    • Lösung: Stelle sicher, dass die verknüpften Dateien nicht von einem anderen Benutzer geöffnet sind. Du kannst auch Application.CalculateFullRebuild nutzen, um alle Berechnungen neu auszuführen.
  • Fehler: Makro bricht ab

    • Lösung: Teste, die Dateien schreibgeschützt zu öffnen. Ändere den Code in:
Set wb = Workbooks.Open(Links(i), UpdateLinks:=0, ReadOnly:=True)
  • Fehler: Automatisierte MsgBox wird nicht geschlossen
    • Lösung: Du kannst SendKeys verwenden, aber es ist nicht immer zuverlässig. Besser ist es, die Sicherheitseinstellungen temporär zu ändern:
With Application
    .AutomationSecurity = msoAutomationSecurityForceDisable
    .EnableEvents = False
End With

Alternative Methoden

Wenn das oben beschriebene Makro nicht funktioniert, gibt es alternative Methoden:

  • Excel Shortcut zum Schließen von Dateien: Du kannst CTRL + W verwenden, um eine Datei schnell zu schließen.
  • Excel verknüpfte Dateien anzeigen: Gehe zu Daten > Verknüpfungen bearbeiten, um alle verknüpften Dateien anzuzeigen und zu verwalten.

Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung des Makros:

  1. Daten aktualisieren: Verwende das Makro, um regelmäßig die Daten aus verknüpften Dateien zu aktualisieren.
  2. Integration in Arbeitsabläufe: Füge das Makro in deine wöchentlichen Berichte ein, um sicherzustellen, dass alle Daten aktuell sind.

Tipps für Profis

  • Automatisierung: Du kannst das Makro auch so anpassen, dass es automatisch beim Öffnen der Datei ausgeführt wird.
  • Performance-Optimierung: Reduziere die Bildschirmaktualisierung während der Ausführung des Makros mit Application.ScreenUpdating = False.
  • Sicherheitsoptionen: Achte darauf, dass die Makrosicherheitseinstellungen in Excel korrekt konfiguriert sind, um die Ausführung der Makros zu ermöglichen.

FAQ: Häufige Fragen

1. Warum werden meine verknüpften Dateien nicht automatisch aktualisiert?
Es kann sein, dass Excel die Verknüpfungen nicht erkennt, wenn die Dateien auf unterschiedlichen Netzwerklaufwerken liegen oder von anderen Benutzern gesperrt sind.

2. Wie kann ich Excel shortcut close file verwenden?
Nutze die Tastenkombination CTRL + W, um Dateien schnell zu schließen, ohne den gesamten Arbeitsbereich zu verlassen.

3. Was bedeutet msoAutomationSecurityForceDisable?
Diese Einstellung in VBA verhindert, dass Sicherheitswarnungen und Dialogfelder angezeigt werden, was bei der automatisierten Bearbeitung von Dateien hilfreich ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige