AW: Konsolidierung von Tabellen
Tabellen
Diese Routine könnte es leisten, wenn in jeder Mappe die werte von einer Tabelle genommen wird, die in allen Dateien den selben Namen "Tabelle1" (oder anders) trägt.
Die temporär geöffneten Datein, werden zum Abschluß geschlossen.
Als Aufrufparameter wird der Bereich der Liste (eine Spalte mit hintereinader beschrieben, gültigen Dateiennamen mit vollständiger Pfadangabe) der Routine übergeben.
Derzeit wird nur die Summe aller Zellen A1 in den aufgerufenen Arbeistmappen addiert und in die Zelle D3 der Konsolidierungsmappe (Active Tabelle beim Start) geschrieben.
Eine weitere Schleife über eine Reihe von Summenbildung ist natürlich einbaubar.
Option Explicit
Public Sub Konsolidieren(ByVal Liste As Range)
Dim c As Range
Dim wt0 As Worksheet, ws As Workbook, wt As Worksheet
Dim sNameK As String
Dim sName() As String, maxDateien As Integer, i As Integer
sNameK = ActiveWorkbook.Name
For Each c In Liste
maxDateien = maxDateien + 1
Next
ReDim sName(maxDateien)
For Each c In Liste
Workbooks.Open Filename:=c.Text
i = i + 1
sName(i) = ActiveWorkbook.Name
Next
Workbooks(sNameK).Activate
Range("D3").Select
With ActiveCell
.Value = 0
i = 0
For Each c In Liste
i = i + 1
Set wt = Workbooks(sName(i)).Sheets("Tabelle1")
.Value = .Value + wt.Range("A1")
Next
End With
i = 0
For Each c In Liste
i = i + 1
Set ws = Workbooks(sName(i))
ws.Save
ws.Close
Next
End Sub
Viel Erfolg beim weiteren Ausarbeiten und Gruß!