Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1232to1236
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

Daten aus unterschiedlichen Dateien konsolidieren

Daten aus unterschiedlichen Dateien konsolidieren
Florian
Moin,
ich habe folgende Problemstellung:
Ausgang:
-ich bekomme eine Anzahl von identischen Umfragedateien als xlsx Dateien. In jeweils einer Zeile, die immer die gleiche ist (Zeile 8), stehen die von den Teilnehmern eingetragenen Daten. Die Spalten sind für alle Dateien identisch. Kurzum: nur der Inhalt der Zeile 8 unterscheided sich voneinander, und ist von Interesse. Die Dateien haben immer bekannte, zu jedem Stichtag gleiche, untereinander jedoch differenzierbare Namen, z.B. Datei1.xlsx, Datei2.xlsx...
Ergebnis 1:
-ich habe eine Datei, die der Gesamtzusammenfassung dient. Sie wird fortlaufend geführt, d.h.: es sollen jede Woche aus Datei1.xlsx, Datei2.xlsx die Zeilen 8 an das Ende der Gesamtdatei kopiert werden - Reihenfolge egal. Es würden also in der Gesamtdatei ein fortlaufender Bestand an Daten wachsen.
Ergebnis 2:
-Neben der Gesamtdatei sollen pro Teilnehmer einzelne Dateien geführt werden, ähnlich wie die Gesamtdatei: es wird immer das neuste Ergebnis (die Zeile 8 aus der jeweiligen Einzeldatei, z.B. Datei1.xlsx) in der Teilnehmerdatei ans Ende gehängt.
Es sei noch gesagt, dass die Speicherorte der Ausgangs-, Gesamt-, und Teilnehmerdateien sich nicht verändern, die Dateien der Ordnung halber aber nicht im gleichen Ordner liegen.
Gibt es für dieses Problem eine praktikable Lösung? Eine Möglichkeit über Formeln zu arbeiten erschließt sich mir bei so einer Stapelverarbeitung und Kopie von Daten in die jeweils letzte Zeile nicht so recht, das scheint eher ein VBA Problem zu sein, oder?
Für jede Hilfe wäre ich sehr dankbar!

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Daten aus unterschiedlichen Dateien konsolidieren
21.10.2011 23:48:30
fcs
Hallo Florian,
hier ein Makro, dass in etwa das macht was du möchtest. Das Makro kannst du in deiner persönlichen Makroarbeitsmappe oder in einer beliebigen anderen Datei speichern.
Die Verzeichnisse und den Namen der Gesamtdatei muss du anpassen.
Wenn das Makro gestartet wird muss die Gesamtdatei bereits geöffnet sein.
Ich bin davon ausgegangen, dass die Dateinamen im Stichtags-Ordner und die Dateien mit der Gesamtliste der einzelnen Teilnahmer identisch sind.
Gruß
Franz

Sub DatenEinlesen()
Dim objWbGesamt As Workbook, objWksGesamt As Worksheet, ZeileGesamt As Long
Dim objWbAktuell As Workbook
Dim objWbTeilnehmer As Workbook, strDateiTeilnehmer As String, ZeileTeilnehmer As Long
Dim iCount As Integer
'Dateiname der Datei mit der Gesamtliste
Const strDateiGesamt As String = "DatenGesamt.xlsx"
'Pfad der Dateien mit den Daten zum Stichtag
Const strPfadAktuell As String = "C:\Users\Public\Test\Aktuell"
'Pfad der Dateien mit den gesamtlisten der Teilnehmer
Const strPfadTeilnehmer As String = "C:\Users\Public\Test\Teilnehmer"
'Datei mit Gesamtliste öffnen
Set objWbGesamt = Workbooks(strDateiGesamt)
Set objWksGesamt = objWbGesamt.Worksheets(1)
'Letzte zeile mit Daten in der Gesamtliste
With objWksGesamt
ZeileGesamt = .Cells.SpecialCells(xlCellTypeLastCell).Row
End With
Application.ScreenUpdating = False
'Dateien im Verzeichnis mit den Daten zum Stichtag suchen
strDateiTeilnehmer = Dir(strPfadAktuell & "\" & "*.xlsx")
Do Until strDateiTeilnehmer = ""
Application.StatusBar = "Datei-Nr. " & iCount & ": " & strDateiTeilnehmer & " wird  _
bearbeitet"
'Datei zum Stichtag schreibgeschützt öffnen
Set objWbAktuell = Workbooks.Open(Filename:=strPfadAktuell & "\" & strDateiTeilnehmer, _
ReadOnly:=True)
ZeileGesamt = ZeileGesamt + 1
'Zeile 8 in die Gesamtliste kopieren (nur Werte)
objWbAktuell.Worksheets(1).Rows(8).Copy
objWksGesamt.Rows(ZeileGesamt).PasteSpecial Paste:=xlPasteValues
'Datei zum Stichtag schliessen
objWbAktuell.Close Savechanges:=False
'Gesamtliste des Teilnehmers öffnen
Set objWbTeilnehmer = Workbooks.Open(Filename:=strPfadTeilnehmer & "\" & strDateiTeilnehmer) _
With objWbTeilnehmer.Worksheets(1)
'Nächste freie Zeile in Teilnehmertabelle
ZeileTeilnehmer = .Cells.SpecialCells(xlCellTypeLastCell).Row + 1
'letzte Zeile aus gesamtliste kopieren
objWksGesamt.Rows(ZeileGesamt).Copy Destination:=.Rows(ZeileTeilnehmer)
End With
Application.CutCopyMode = False
'Gesamtliste des Teilnehmers speichern und schliessen
objWbTeilnehmer.Close Savechanges:=True
'Gesamtliste speichern
objWbGesamt.Save
'nächste Datei zum Stichtag suchen
strDateiTeilnehmer = Dir
Loop
Application.ScreenUpdating = True
Application.StatusBar = False
MsgBox "Fertig"
End Sub

Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige