Microsoft Excel

Herbers Excel/VBA-Archiv

Verlinkung externer Arbeitsmappen

Betrifft: Verlinkung externer Arbeitsmappen von: Marty
Geschrieben am: 13.03.2008 09:58:17

Hallo liebe Excel Gemeinde,

habe hier ein massive Problemstellung die ich scheinbar nur mit VBA gelöst bekomme?!

Die Aufgabe besteht darin, auf Daten von ca. 600 identischen Arbeitsmappen zuzugreifen und diese in einer neuen Arbeitsmappe auszuweisen.
Eine klassische Verlinkung fällt aus, da zu aufwendig und Pflegeintensiv.
Verwendung von INDIREKT + ADRESSE + VERKETTEN wäre die eleganteste Variante schnell auf die Daten zuzugreifen (mit Verketten könnten die Arbeitsmappennamen, die sich durch eine laufende nummer unterscheiden generiert werden und mit ADRESSE könnte die Zellbezüge dynamisch erstellte werden. PROBLEM: INDIR + ADRESSE erfordert zum Datenabruf, dass alle 600 Arbeitsmappen geöffnet werden...

Gibt es eine andere, auch für einen VBA Novizen/Laien einsetzbare Methode?

Tausend Dank für Eure Hilfe!
Gruss
Marty

  

Betrifft: AW: Verlinkung externer Arbeitsmappen von: fcs
Geschrieben am: 13.03.2008 14:44:57

Hallo Marty,

ich hab keine Ahnung ob eine Excel-Arbeitsmappe Verknüpfungen in ca. 600 andere Dateien verkraftet.

Mit etwas Tricksen und ein wenig Handarbeit kann man auch ohne VBA die entsprechenden Formeln generieren.
Dazu wird der Formeltext zunächst als Textstring in einer Zelle berechnet.
Anschließend die Zellen mit den Formeln kopiert und und als Werte in einem 2. Tabellenbereich eingefügt.
Zum Schluss muss noch mit Suchen/Ersetzen das "=" durch "=" ersetzt werden, damit Excel aus dem text eine Formel macht.
Beispiel:


='\\S040a0025\s014123$\[Mappe		
	Zellen	
DateiNr	$A$4	
1	=$A$1&$A4&".xls]Tabelle1'!"&B$3	='\\S040a0025\s014123$\[Mappe1.xls]Tabelle1'!$A$4
2	=$A$1&$A5&".xls]Tabelle1'!"&B$3	='\\S040a0025\s014123$\[Mappe2.xls]Tabelle1'!$A$4


In A1 steht der 1. Teil der Formel als Text (Eingabe mit Hochkomma beginnen!). Also Laufwerk,Verzeichnise und ggf. Teil des Dateinamens.
in A4, A5, usw. steht die fortlaufende Nummer
in B3 steht die Zelle aus der der Wert ausgelesen werden soll, weitere Zellen kann man in Zeile 3 in weiteren Spalten angeben.
in B4 steht die Formel zur Berechnung des Formeltextes. Diese Zelle entsprechend nach unten/rechts kopieren.


Nach dem Kopieren der Formelergebnisse und dem Ersetzen des =-Zeichens werden die Werte aus den verknüpften Dateien berechnet.

Nachfolgend ein Beispiel-Makro, das die Formeln generiert und im Tabellenblatt einträgt.

Gruß
Franz

Sub Formeln()
  Dim DateiNr As Long
  Dim ws As Worksheet, Zeile As Long, Formel1 As String, Formel2 As String
  Set ws = ActiveSheet
  'Formeln mit Verknüpfung ab Zeile 2 einfügen
  Zeile = 2 'Startzeile für Formeln
  Formel1 = "='\\S040a0025\s014123$\[Mappe" 'Pfad + g. Teil des Dateinamens
  'Formel1 = "='C:\Test\TestTest\[Mappe" 'Pfad + ggf. Teil des Dateinamens
  Formel2 = ".xls]Tabelle1'!" 'Dateierweiterung + Tabellenname
  For DateiNr = 1 To 2 'Nummern entsprechend anpassen
    ws.Cells(Zeile, 1).Value = DateiNr
    ws.Cells(Zeile, 2).FormulaLocal = Formel1 & DateiNr & Formel2 & "$A$4"
    ws.Cells(Zeile, 3).FormulaLocal = Formel1 & DateiNr & Formel2 & "$B$4"
    Zeile = Zeile + 1
  Next
End Sub




 

Beiträge aus den Excel-Beispielen zum Thema "Verlinkung externer Arbeitsmappen"