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

verknüpfte Arbeitsmappen öffnen und schließen

Forumthread: verknüpfte Arbeitsmappen öffnen und schließen

verknüpfte Arbeitsmappen öffnen und schließen
Wilfried
Guten Tag,
Meine Problemstellung:
Ich möchte die verknüpften Dateien einer Arbeitsmappe der Reihe nach öffnen und gleich wieder schließen. Dabei soll die jeweilige Datei, die geöffnet wurde, auch sofort wieder geschlossen werden bevor die nächste Datei geöffnet wird.
Ich nutze derzeit folgendes Makro um ALLE Dateien zu öffen:
Sub ÖffnenAllerVerknüpftenArbeitsmappen()
Dim Links As Variant
Links = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(Links) Then
For i = 1 To UBound(Links)
Workbooks.Open Links(i)
Next i
Else
MsgBox "Diese Arbeitsmappe hat keine Verknüpfungen zu anderen Mappen!"
End If
End Sub

Und dieses Makro um ALLE Dateien wieder zu schließen:
Sub SchliessenAllerVerknüpftenArbeitsmappen()
Dim Links As Variant
Dim i As Integer
Dim StDateiname As String
Dim InI As Integer
Links = ActiveWorkbook.LinkSources(xlExcelLinks)
If Not IsEmpty(Links) Then
For i = 1 To UBound(Links)
' Dateiname abtrennen
For InI = Len(Links(i)) To 1 Step -1
If Mid(Links(i), InI, 1) = "\" Then
StDateiname = Mid(Links(i), InI + 1, Len(Links(i)) - InI + 2)
Exit For
End If
Next InI
Workbooks(StDateiname).Close  ' True fall speichern
Next i
Else
MsgBox "Diese Arbeitsmappe hat keine Verknüpfungen zu anderen Mappen!"
End If
End Sub

Mein Anliegen ist die beiden Makros zu kombinieren. Meine bisherigen Versuche waren allerdings erfolglos.
Ich würde mich freuen, wenn mir jemand dabei helfen könnte.
Gruß
Wilfried
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: verknüpfte Arbeitsmappen öffnen und schließen
10.09.2010 08:30:53
xr8k2
Hallo Wilfried,
weise doch einfach das (jedes) geöffnete Workbook einer Variablen zu ... über diese Variable kannst du die Mappe dann bequem wwieder schließen:
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))
'hier u.U. noch weiterer Code zur Bearb. der geöffneten Mappe
wb.Close
Next i
Else
MsgBox "Diese Arbeitsmappe hat keine Verknüpfungen zu anderen Mappen!"
End If
End Sub
Gruß,
xr8k2
Anzeige
AW: verknüpfte Arbeitsmappen öffnen und schließen
10.09.2010 09:16:04
Wilfried
Hallo xr8k2
Vielen Dank für Deine spontane Hilfe. Der Code funktioniert!
Ich habe ihn noch leicht wie folgt ergänzt:
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
Nochmal ein riesiges DANKE
Gruß
Wilfried
Anzeige
ActiveWorkbook.Saved = True
10.09.2010 09:46:32
Rudi
Hallo,
1. sollte es
wb.Saved=True
heißen.
2. kannst du das auch mit
wb.Close False
erledigen.
Gruß
Rudi
Schönheitsfehler
10.09.2010 10:10:01
Markus
Hallo,
ein Super-Befehl aber ..
wenn ich diesen Befehl als Private Sub Workbook_Open speichere,
den wb.close entferne war meine Überlegung folgende:
Excel öffent die Tabelle: Mappe dann wird über Workbook_Open die Tabelle: Verknüpfungen.xls geöffnet.
Aber Excel fragt zuerst nach den Verknüpfungen und erst nachher wird der Job
Sub_workbook_open ausgeführt.
Ist doch eigentlich nicht der Sinn der Sache.
Markus
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Verknüpfte Arbeitsmappen in Excel öffnen und schließen


Schritt-für-Schritt-Anleitung

Um verknüpfte Arbeitsmappen in Excel effizient zu öffnen und sofort wieder zu schließen, kannst du das folgende Makro verwenden:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul hinzu, indem du im Menü auf Einfügen und dann auf Modul klickst.

  3. 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)
               wb.Saved = True
               wb.Close False
           Next i
       Else
           MsgBox "Diese Arbeitsmappe hat keine Verknüpfungen zu anderen Mappen!"
       End If
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus, um alle verknüpften Arbeitsmappen der aktuellen Arbeitsmappe zu öffnen und sofort wieder zu schließen.


Häufige Fehler und Lösungen

  • Fehler: "Diese Arbeitsmappe hat keine Verknüpfungen zu anderen Mappen!"

    • Lösung: Stelle sicher, dass deine Excel-Arbeitsmappe tatsächlich Links zu anderen Arbeitsmappen enthält. Du kannst dies überprüfen, indem du auf Daten > Verknüpfungen bearbeiten gehst.
  • Fehler: Excel öffnet die Arbeitsmappe, fragt nach den Verknüpfungen und schließt nicht ordnungsgemäß.

    • Lösung: Verwende wb.Close False, um Excel anzuweisen, keine Speicheranfragen zu stellen.

Alternative Methoden

Falls du die Excel-Arbeitsmappen nicht über VBA verwalten möchtest, kannst du auch die folgenden Methoden in Betracht ziehen:

  1. Manuelles Öffnen: Gehe zu Daten > Verknüpfungen bearbeiten und öffne die entsprechenden Arbeitsmappen manuell.
  2. Power Query: Nutze Power Query, um Daten aus verschiedenen Arbeitsmappen zu importieren, anstatt sie direkt zu öffnen.

Praktische Beispiele

Wenn du eine Excel-Arbeitsmappe hast, die Links zu mehreren anderen Arbeitsmappen enthält, kannst du das oben genannte Makro verwenden, um effizient die Daten zu aktualisieren. Hier ist ein Beispiel für eine typische Anwendung:

  1. Deine Hauptarbeitsmappe heißt Hauptmappe.xlsx.
  2. Sie hat Links zu Datenquelle1.xlsx und Datenquelle2.xlsx.
  3. Mit dem Makro werden diese beiden Arbeitsmappen geöffnet, um Daten zu aktualisieren, und danach sofort geschlossen, ohne dass eine Speicheranfrage erscheint.

Tipps für Profis

  • Verwende Application.DisplayAlerts = False vor dem Schließen der Arbeitsmappen, um alle Dialogfelder zu unterdrücken. Stelle sicher, dass du nach dem Schließen Application.DisplayAlerts = True wiederherstellst, um die Standardverhalten von Excel wiederherzustellen.

  • Optimierung der Links: Achte darauf, dass alle Links in deiner Arbeitsmappe aktuell sind, um unnötige Fehler zu vermeiden.

  • Fehlerprotokollierung: Füge eine Fehlerbehandlung in dein Makro ein, um bei Problemen eine entsprechende Fehlermeldung auszugeben.


FAQ: Häufige Fragen

1. Wie kann ich die Links zu Arbeitsmappen in Excel überprüfen?
Du kannst die Links zu Arbeitsmappen überprüfen, indem du auf Daten > Verknüpfungen bearbeiten gehst. Dort siehst du alle verbundenen Dateien.

2. Was passiert, wenn ich die Arbeitsmappen nicht schließen kann?
Wenn du die Arbeitsmappe nicht schließen kannst, überprüfe, ob möglicherweise ein Dialogfeld offen ist, das die Schließung verhindert. Stelle sicher, dass kein anderer Prozess auf die Dateien zugreift.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige