VBA - Sub ÖffnenAllerVerknüpftenArbeitsmappen()
05.10.2004 10:29:46
Agnes
ich habe mehrere Tabellen die miteinander verknüpft sind durch Formeln.
Ich habe eine Tabelle Jahresübersicht (Obertabelle) die verknüpft ist mit Monatsübersicht (Mitteltabelle) und die Monatsübersicht wiederrum mit anderen kleinen Untertabellen.
Um die automatisch zu öffnen, bzw. die Tabellen zu öffnen die z.B. die Monatsübersicht braucht, habe ich hier vom Forum ein Makro bekommen.
Option Explicit
' Von Wilfried Heber.de
Sub ÖffnenAllerVerknüpftenArbeitsmappen()
On Error Resume Next
Dim Links As Variant
Dim I As Integer
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
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 ergänzung Hajo
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
Das funktioniert ganz gut, doch ein Problem habe ich da noch.
Die Monatsübersicht braucht Ihre Untertabellen und die Jahresübersicht braucht wiederrum die Monatsübersicht und die Untertabellen der Monatsübersicht. Doch wenn ich schon die Monatsübersicht mit Ihren Untertabellen offen habe und dann noch die Jahresübersicht öffne, berechnet die Jahresübersicht die Tabellen die sie braucht, also die Monatsübersicht und die Untertabellen noch mal neu, obwohl diese schon offen sind, und dabei geht viel Zeit drauf.
Wie kann ich das umgehen?
Also wenn die tabellen offen sind, dass die nicht noch mal berechnet werden?!?!
Gruß Agnes