Hallo zusammen,
ich habe folgendes Problem und bin gelinde gesagt ziemlich in Zeitnot. Es wäre also wirklich klasse wenn ich auf diesem Weg zu einer Lösung komme. Zum Problem:
Ausgangslage:
In unserem Betrieb soll ein Arbeitsschritt bei der Datenerfassung vereinfacht werden. Bisher wurde dies händisch und sehr aufwändig gemacht. Die händische Erfassung soll nun in digitaler Form umgesetzt werden. Jeder Mitarbeiter erfasst in einer Excel Datei Daten und speichert seine Ergebnisse täglich, basierend auf den Daten in der Datei, in einen Zielordner ab. Die Daten im Zielordner haben alle den selben Aufbau hinsichtlich des Namens. (Bspw. "Kalenderwoche"_"Datum"_"Mitarbeitercode"_"Individualkennzeichnung der Daten"). Die abgespeicherten Dateien der Mitarbeiter haben alle die exakt identische Formatierung auf einem Arbeitsblatt. Auf diesem Arbeitsblatt werden die individuell erhobenen Daten hinterlegt. Bedeutet das es ca. 100 mögliche Zellen gibt die mit Daten (Zahlenwerte in der Regel 1 oder 0) befüllt werden.
Die eingespielten Dateien der Mitarbeiter sollen nun in einem weiteren Schritt am Wochenende möglichst einfach zusammengefasst werden. Bedeutet in einem Zielordner sind z.B. in der KW 3 15 Excel Dateien und die Werte sollen zusammen in einem neuen Sheet summiert werden. Die Daten werden durch folgendes Makro in die Excel Datei zum Berechnen eingespielt.
_______________________________________
Sub Mehrer_Dateien_zusammenführen()
Dim Zielarbeitsmappe As Object
Dim QuellenArbeitsmappe As Object
Dim Pfad As String
Dim Datei As String
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Zielarbeitsmappe = ActiveWorkbook
Pfad = InputBox("Pfad eingeben", "Pfad")
Datei = Dir(CStr(Pfad & "*.xl*"))
Do While Datei <> ""
Set QuellenArbeitsmappe = Workbooks.Open(Pfad & Datei, False, True)
QuellenArbeitsmappe.Sheets().Copy After:=Zielarbeitsmappe.Sheets(Zielarbeitsmappe.Sheets.Count)
Zielarbeitsmappe.Sheets(Zielarbeitsmappe.Sheets.Count).Name = Datei
QuellenArbeitsmappe.Close
Datei = Dir()
Loop
Application.ScreenUpdating = True
Application.DisplayAlerts = True
MsgBox "Dateien wurden zusammengeführt"
Set Zielarbeitsmappe = Nothing
Set QuellenArbeitsmappe = Nothing
End Sub
____________________________________
Hier komme ich nun an meine Grenzen. Das Problem ist, dass die Anzahl der Arbeisblätter die eingespielt wird nie identisch ist und die Arbeitsblätter immer unterschiedliche Namen haben. Eine klassische Formel wie =Summe(Tabbele1!:TabelleX!) funktioniert demnach nicht weil der Formel vor dem einspielen der Bezug fehlt. Ich benötige also eine Möglichkeit i.S.v. (Summe aller vorhandenen Zellen z.B. A1 in der Zelle A1 auf dem ersten Tabellenblatt)
Ich hoffe ich habe mich halbwegs verständlich ausgedrückt. Für Rückfragen bin ich selbstverständlich offen. Vielen Dank für die Hilfe.
|