Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1672to1676
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

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!

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
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!
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
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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge