Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Daten aus mehreren Mappen zusammenführen

Daten aus mehreren Mappen zusammenführen
19.02.2013 18:10:31
Constantin
Hallo,
ich möchte Daten aus 20 Arbeitsmappen mit gleichem (Spalten-)Aufbau zusammenfügen. Dafür habe ich eine Mappe „Summe“, die in Tabelle1 die Informationen für diese Dateien beinhaltet: Dateiname (Spalte 1), Password (Spalte 2) und den Dateipfad (Spalte 3). Diese Auflistung wird ab Zeile 2 bis zum Ende durchlaufen.
Bei den auszulesenden Mappen ist nur Tabelle1 „Daten“ relevant (z.Zt. Spalte 1 bis 30). Ab Zeile 11 beginnen die jeweils auszulesenden Zeilen (bis Ende genutzter Bereich). Diese Dateien lassen sich auch schreibgeschützt öffnen.
Wie könnte/sollte die Kopierroutine aussehen, mit der ich nur Werte und Formate aller auszulesenden Zeilen in meine Summendatei (in Tabelle2 (ab Zeile 2)) übertragen kann und die zu kopierenden Zeilen immer unten angehängt werden?
Mit einem Ansatz wäre mir vermutlich schon sehr geholfen.
Vielen Dank im Voraus.
Grüße, Constantin

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus mehreren Mappen zusammenführen
20.02.2013 15:46:04
fcs
Hallo Constantin,
nachfolgend ein entsprechendes Makro.
Gruß
Franz
'Erstellt unter Excel 2010
Sub DatenImportieren()
Dim sVerzeichnis As String, sDatei As String
Dim wbZiel As Workbook, wbQuelle As Workbook
Dim wksSteuerung As Worksheet, wksZiel As Worksheet, wksQuelle As Worksheet
Dim Zeile_S As Long, Zeile_Z As Long, FileCount As Long
Dim Zelle As Range
Const Zeile_1 = 11 '1. Auszulesende Zelle in der Quelltabelle
Const Spalte_L = 30 'letzte auszulesende Spalte in der Quelltabelle
On Error GoTo Fehler
Set wbZiel = ActiveWorkbook
Set wksSteuerung = wbZiel.Worksheets("Tabelle1")
Set wksZiel = wbZiel.Worksheets("Tabelle2")
With wksSteuerung
Application.ScreenUpdating = False
Zeile_Z = 2 '1. Zeile in der im Zielblatt Daten eingefügt werden sollen
'Dateinamen in Tabelle1 abarbeiten
For Zeile_S = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
FileCount = FileCount + 1
Application.StatusBar = "Datei, laufende Nr. " & FileCount & " wird bearbeitet."
With .Cells(Zeile_S, 3)
If Right(.Text, 1) = Application.PathSeparator Then
sVerzeichnis = .Text
Else
sVerzeichnis = .Text & Application.PathSeparator
End If
End With
sDatei = .Cells(Zeile_S, 1)
'Quelldatei schreibgeschützt öffnen
Set wbQuelle = Workbooks.Open(Filename:=sVerzeichnis & sDatei, ReadOnly:=True, _
Password:=.Cells(Zeile_S, 2).Text)
'Objektvariable die 1. Tabelle zuweisen
Set wksQuelle = wbQuelle.Worksheets(1) '= wbQuelle.Worksheets("Daten")
With wksQuelle
'Letzte Zelle mit Daten in Tabelle 1
Set Zelle = .Cells.Find(What:="*", after:=.Cells(1, 1), LookIn:=xlFormulas, _
lookat:=xlWhole, searchorder:=xlByRows, searchdirection:=xlPrevious)
If Zelle Is Nothing Then
'keine Daten in Quelltabelle
MsgBox "Keine Daten in Quelltabelle von Datei" & vbLf & wbQuelle.FullName
ElseIf Zelle.Row >= Zeile_1 Then
'Daten in Zieltabelle kopieren
.Range(.Cells(Zeile_1, 1), .Cells(Zelle.Row, Spalte_L)).Copy
wksZiel.Cells(Zeile_Z, 1).PasteSpecial Paste:=xlPasteFormats
wksZiel.Cells(Zeile_Z, 1).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
'nächste Einfüge-Zeile in Zieltabelle
Zeile_Z = Zeile_Z + Zelle.Row - Zeile_1 + 1
Else
'keine Daten ab inkl. Zeile 11
MsgBox "Keine Daten unterhalb Zeile " & Zeile_1 - 1 & " in Quelltabelle von Datei"  _
_
& vbLf & wbQuelle.FullName
End If
End With
wbQuelle.Close savechanges:=False
Set wksQuelle = Nothing
Set wbQuelle = Nothing
Next
End With
wksZiel.Activate
Application.ScreenUpdating = True
MsgBox "Alle Dateien ausgelesen"
Err.Clear
Fehler:
With Err
Select Case .Number
Case 0 'alles OK
Case Else
Application.ScreenUpdating = True
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
If Not wbQuelle Is Nothing Then wbQuelle.Close savechanges:=False
End Select
End With
Application.StatusBar = False
Set wbZiel = Nothing: Set wksZiel = Nothing: Set wksSteuerung = Nothing
Set wbQuelle = Nothing
End Sub

Anzeige
AW: Ideallösung ... Danke!
21.02.2013 09:29:15
Constantin
Hallo Franz,
ich hatte schon begonnen, mit einigen "Krücken" vorwärts zu kommen. Diese kann ich nun getrost beiseite legen, denn das Programm läuft elegant über die Steuerungstabelle und sammelt bzw. kopiert die Daten. Eine feine Sache! Deshalb vielen Dank für die Arbeit und Mühe!!!
Grüße, Constantin
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige