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

Excel Tabellen zusammenführen

Excel Tabellen zusammenführen
10.09.2018 16:56:36
anski100
Hallo zusammen,
ich möchte mit dem folgenden Befehl alle Exceltabellen aus einem Ordner in einem Tabellenblatt zusammenfassen.
Bei kleinen Tabellen funktioniert das auch. Aber jetzt habe ich 10 Tabellen mit jeweils 250Zeilen und 6Spalten. Nach über 5Minuten Wartezeit hab ich abgebrochen.
Kann mir jemand helfen wie die ganze Programmierung CPU-freundlicher gestalltet werden kann?
Danke
'Die einzelnen Dateien werden zu einer Datei zusammengeführt

Sub Daten_aus_mehreren_Tabellen_einlesen()
Dim oTargetSheet As Object
Dim oSourceBook As Object
Dim sPfad As String
Dim sDatei As String
Dim lErgebnisZeile As Long
Dim s As Long
Dim z As Long
Application.ScreenUpdating = False 'Das "Flackern" ausstellen
'Schritt 1: Neues Arbeitsblatt für die Ergebnisse erstellen
Set oTargetSheet = ActiveWorkbook.Sheets.Add
lErgebnisZeile = 1 'Ergebnisse eintragen ab Zeile 1
'Schritt 2: Schleife über alle Excel Dateien in einem Verzeichnis
sPfad = "C:\Users\Testuser\090_Daten\Basisdaten\"
sDatei = Dir(CStr(sPfad & "*.xl*")) 'Alle Excel Dateien
Do While sDatei  ""
'Schritt 3: öffnen der Datei und Datenübertragung
Set oSourceBook = Workbooks.Open(sPfad & sDatei, False, True) 'nur lesend öffnen
'Datenübertragung alle genutzten Zeilen und Spalten
For z = 1 To oSourceBook.Sheets("Tabelle1").UsedRange.Rows.Count
'Keine Leerzeilen verarbeiten
If Trim(CStr(oSourceBook.Sheets("Tabelle1").Cells(z, 1).Value))  "" Then
For s = 1 To oSourceBook.Sheets("Tabelle1").UsedRange.Columns.Count
'Spalte 2 bis n - Tabelleninhalte des Arbeitsblattes " _
Tabelle1"
oTargetSheet.Cells(lErgebnisZeile, s).Value = _
oSourceBook.Sheets("Tabelle1").Cells(z, s).Value
Next s
lErgebnisZeile = lErgebnisZeile + 1
End If
Next z
'Schritt 4: Datei wieder zu machen und nächste Schleifenrunde
oSourceBook.Close False 'nicht speichern
'Nächste Datei
sDatei = Dir()
Loop
Application.ScreenUpdating = True 'Das Bildschirm-Aktualisieren wieder einschalten
'Variablen aufräumen
Set oTargetSheet = Nothing
Set oSourceBook = Nothing
'Die Spalten A-Z optimal ausrichten
With ActiveCell
Columns("A:Z").Select
Range(Selection, Selection.End(xlToRight)).Select
Cells.EntireColumn.AutoFit
'Sortiert die Produktbezeichnung Alphabetisch
Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlYes, key2:=Range("A2"),    _
_
_
_
Order2:=xlDescending, Header:=xlYes
'Befehl wo der Cursor stehen soll wenn Befehl beendet
Sheets("Tabelle1").Select
Range("A1").Select
End With
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Excel Tabellen zusammenführen
10.09.2018 21:42:40
Günther
Moin,
mein Tipp: Verzichte auf VBA und nutze Power Query aka Daten | Abrufen und transformieren. Das geht schnell und komfortabel.
Gruß
Günther
AW: Excel Tabellen zusammenführen
11.09.2018 09:49:29
anski100
Danke, dass ist deutlich besser.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige