Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA: Verknüpften Arbeitsmappen in RANGE öffnen
#1
Question 
Hallo zusammen,

ich habe folgendes Makro im Netz gefunden. (Quelle) https://www.herber.de/forum/archiv/1176t...lieen.html

Code:
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:=1)
         'Speicheranfrage unterdrücken:
         Application.DisplayAlerts = False
         ActiveWorkbook.Save
         wb.Close
     Next i
   Else
      MsgBox "Diese Arbeitsmappe hat keine Verknüpfungen zu anderen Mappen!"
   End If
  Application.DisplayAlerts = True
End Sub

Nun würde ich gerne nur die Verknüpften Arbeitsmappen in einem vordefinierten Bereich öffnen und aktualisieren lassen.
Oder das jede Arbeitsmappe nur einmal geöffnet und aktualisiert wird.

Kann mir hier jemand dabei helfen?

Danke & viele Grüße
Antworten Top
#2
Hallöchen,

Zitat:Nun würde ich gerne nur die Verknüpften Arbeitsmappen in einem vordefinierten Bereich öffnen und aktualisieren lassen.

Soll das heißen, dass Du z.B. in Mappe A eine Verknüpfung zu Mappe B hast und statt A zu aktualisieren dann in Mappe B z.B. den von Dir definierten Bereich X99 ändern willst?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Guten Morgen,

ich habe eine Übersicht mit ganz vielen Dateien Verknüpft.
Leider muss ich viele Dateien doppelt oder auch mehrfach verknüpfen (sind immer andere Zellen) um auf meine Ergebnisse zu kommen.

Das Makro macht leider alle Verknüpften Dateien in der Arbeitsmappe auf. Auch meine Dateien die 3 Fach oder noch öfters verknüpft sind. Da dachte ich mir vielleicht kann man ja das öffnen der Dateien in meiner Übersicht auf einen Bestimmten Bereich reduzieren.

Hoffe es war verständlich. :)

Viele Grüße
Antworten Top
#4
Hallo, 19 

du könntest "Intersect" nehmen: 21

Code:
Option Explicit
Public Sub Main()
    Dim Links As Variant, i As Long
    Dim wb As Workbook
    If Not Intersect(ActiveCell, Range("D1:D25")) Is Nothing Then
        Links = ActiveWorkbook.LinkSources(xlExcelLinks)
        If Not IsEmpty(Links) Then
            For i = 0 To UBound(Links)
                'Aufruf Aktualisierung ausschalten: ", UpdateLinks:=0"
                Set wb = Workbooks.Open(Links(i), UpdateLinks:=1)
                'Speicheranfrage unterdrücken:
                Application.DisplayAlerts = False
                ActiveWorkbook.Save
                wb.Close
            Next i
        Else
            MsgBox "Diese Arbeitsmappe hat keine Verknüpfungen zu anderen Mappen!"
        End If
    End If
    Application.DisplayAlerts = True
End Sub

Oder - falls sich der Bereich öfter ändert - auch "Application.InputBox-Methode (Excel)...". Dodgy

Und das Array ist Nullbasiert, also "For i = 0 to..."
________
Servus
Case
Antworten Top
#5
Hallöchen,

das sind eigentlich zwei verschiedene Anforderungen

zum einen

For i = 1 To UBound(Links)

Die Schleife könntest Du z.B. durch einen spätere Beginn - statt 1 dann 5 oder was auch immer - oder ein zeitigeres Ende einschränken

zum zweiten

Du könntest per Prüfung mit If ... in der Schleife bestimmte Links aus- oder nur selbige einschließen

zum dritten

könntest Du ausgeführte Links merken und diese bei wiederholtem Auftreten überspringen.
Du könntest Die z.B. in einem Array speichern und dieses dann zur Prüfung durchgehen oder in einer Collection ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste