Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1492to1496
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Summe aus mehreren Dateien bestimmts Tabellenblatt

Summe aus mehreren Dateien bestimmts Tabellenblatt
11.05.2016 14:46:45
Roman
Hallo,
lange nicht mehr hier gewesen - aber noch in guter Erinnerung :-)
Ich benötige Eure Hilfe und meine Deadline rückt immer näher...
Mein Problem:
Ich habe mehrere Exceldateien in einem Verzeichnis welche aus unterschiedlich vielen, gleichen Tabellenblättern bestehen.
Jede der Dateien hat ein Tabellenblatt mit dem Namen "Summe" welches die Summe aus den anderen Tabellenblättern per Makro generiert.
Dabei gehe ich mit einem sehr "schlichten" Makro wie folgt vor.
Sub Summierung1()
Dim WS_Count As Integer
Dim I As Integer
Worksheets("Summe").Unprotect Password:="test"
' Tabellen in aktueller Mappe zaehlen
WS_Count = ActiveWorkbook.Worksheets.Count
' Starttabelle festlegen 2 fuer zweite...
For I = 2 To WS_Count
' Summierung der Zellen aller vorhandenen Tabellenblätter YTD
summe1 = summe1 + ActiveWorkbook.Worksheets(I).Range("W21")
summe2 = summe2 + ActiveWorkbook.Worksheets(I).Range("W22")
summe3 = summe3 + ActiveWorkbook.Worksheets(I).Range("W25")
summe4 = summe4 + ActiveWorkbook.Worksheets(I).Range("W30")
summe5 = summe5 + ActiveWorkbook.Worksheets(I).Range("W35")
summe6 = summe6 + ActiveWorkbook.Worksheets(I).Range("W43")
summe7 = summe7 + ActiveWorkbook.Worksheets(I).Range("W47")
summe8 = summe8 + ActiveWorkbook.Worksheets(I).Range("W48")
Next I
' Ausgabe der Summe in der Tabelle "Summe" in definierter Zelle YTD-Teil
Sheets("Summe").Range("W21") = summe1
Sheets("Summe").Range("W22") = summe2
Sheets("Summe").Range("W25") = summe3
Sheets("Summe").Range("W30") = summe4
Sheets("Summe").Range("W35") = summe5
Sheets("Summe").Range("W43") = summe6
Sheets("Summe").Range("W47") = summe7
Sheets("Summe").Range("W48") = summe8
End Sub

Nun möchte ich gern die so generierten Summenblätter aller im Verzeichnis befindlichen Dateien (Menge variiert) wiederum in einer eigenen Datei und einem Mastersummenblatt addieren.
Dabei sollen die Werte als feste Werte geschrieben werden. Alle Tabellen sind 100% identisch. Nachdem ich diese Datei versenden muss - müssen es feste Werte sein.
Würde mich sehr über Hilfe freuen.
Vielen Dank schon mal und viele Grüße
Roman

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Summe aus mehreren Dateien bestimmts Tabellenblatt
11.05.2016 15:39:44
UweD
Hallo
versuch mal das...

Sub Summen_alle_Dateien_Verzeichnis() '
On Error GoTo Fehler
Dim Dlg As FileDialog
Dim Si, Ext As String, Datei As String
Dim LR As Double, TB1, TB2, Z, SP As Integer
'anpassen
SP = 1 'Zielspalte 1=A
Ext = "*.xls*"
Set TB1 = ThisWorkbook.Sheets("Mastersumme")
'Ende anpassen
Application.ScreenUpdating = False
Set Dlg = Application.FileDialog(msoFileDialogFolderPicker) 'Verzeichnis wählen
If Dlg.Show = True Then
TB1.Cells.ClearContents
For Each Si In Dlg.SelectedItems
Si = IIf(Right(Si, 1) = "\", Si, Si & "\")
Datei = Dir(Si & Ext)
Do While Len(Datei) > 0
Workbooks.Open Filename:=Si & Datei
Set TB2 = Workbooks(Datei).Sheets("Summe")
For Each Z In TB2.Columns("W:W").SpecialCells(xlCellTypeConstants, 1)
LR = TB1.Cells(Rows.Count, 1).End(xlUp).Row + 1
TB1.Cells(LR, SP) = Datei
TB1.Cells(LR, SP + 1) = Z.Value
Next
Workbooks(Datei).Close SaveChanges:=False
Datei = Dir() ' nächste Datei
Loop
Next
LR = TB1.Cells(Rows.Count, 1).End(xlUp).Row + 2
TB1.Cells(LR, SP) = "Gesamtsumme"
TB1.Cells(LR, SP + 1).FormulaR1C1 = "=SUM(R1C:R[-2]C)"
TB1.Cells(LR, SP + 1).Value = TB1.Cells(LR, SP + 1).Value
End If
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
End Sub

Gruß UweD

Anzeige
AW: Summe aus mehreren Dateien bestimmts Tabellenblatt
11.05.2016 17:53:06
Roman
Hallo Uwe,
vielen lieben Dank - habe die Version von Michael verwenden da bleibe ich flexibler.
VG
Roman

AW: Summe aus mehreren Dateien bestimmts Tabellenblatt
11.05.2016 16:02:51
Michael
Hi zusammen,
aha, Uwe hat ja schon eine Lösung parat.
Aber weil ich schon Zeit investiert habe:
Option Explicit
Sub SummenLesen()
Dim Datei As String, Pfad As String, Bereich As String
Dim extDatei As Workbook
Dim i&, ub&, lb&
Dim aB As Variant ' Array aus Bereich
Dim aW#()         ' Zahlen aus Bereich
Pfad = Master.Range("b2").Value
Datei = Master.Range("b3").Value
Bereich = Master.Range("B4").Value
aB = Split(Bereich, ",")
ub = UBound(aB)
lb = LBound(aB)
ReDim aW(lb To ub)
Datei = Dir(Pfad & Datei)
Application.ScreenUpdating = False
While Datei  ""
Set extDatei = Workbooks.Open(Pfad & Datei, , True)
For i = lb To ub
aW(i) = aW(i) + Sheets(1).Range(aB(i))
Next
extDatei.Close
Datei = Dir
Wend
With Sheets("Summen")
For i = lb To ub
.Range(aB(i)) = aW(i)
Next
End With
MsgBox "Ergebnis in Blatt Summe"
End Sub
Makro zusammen mit Testdatein: https://www.herber.de/bbs/user/105509.zip
Ich habe einen variablen Ansatz gewählt, bei dem die einzelnen zu summierenden Zellen mit "," getrennt eingegeben werden. Das ändert sich vielleicht nicht laufend, aber zum Entwickeln war's schöner als mit Werten "rechts draußen" zu hantieren.
Schöne Grüße,
Michael

Anzeige
AW: Summe aus mehreren Dateien bestimmts Tabellenblatt
11.05.2016 17:50:45
Roman
Hallo Michael,
vielen Dank für die schnelle Hilfe. Das ist der Hammer!! Funktioniert perfekt.
Wie kann ich das Summenblatt am ende noch schützen und an welcher stelle den Schutz freigeben?
Vielen Dank noch mal und viele Grüße
Roman

Gerne
12.05.2016 19:49:03
Michael
Hi,
im Prinzip nur da, wo tatsächlich in das Summenblatt geschrieben wird, also ganz unten im WITH, hier mit den beiden zusätzlichen Zeilen zum Schutz aufheben bzw. Schützen:
With Sheets("Summen")
.Unprotect
For i = lb To ub
.Range(aB(i)) = aW(i)
Next
.Protect
End With
ggf. kann man auch ein Passwort mitgeben, sie z.B.:
https://www.herber.de/forum/archiv/340to344/342479_ActiveSheetprotect_Passwort_mitgeben.html
Happy Exceling,
Michael
Anzeige

328 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige