AW: Verlinkung externer Arbeitsmappen
13.03.2008 14:44:57
fcs
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