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

Tabellenblätter in Masterdatei zusammen

Tabellenblätter in Masterdatei zusammen
13.10.2021 12:31:19
Jane
Hallo zusammen,
ich habe im Internet folgenden VBA Code gefunden (weiter unten zu sehen). Ich möchte nun aber gern keinen Pfad im Code angeben sondern möchte Dateien im Verzeichnis auswählen, über den Befehl Application.GetOpenFilename(FileFilter:="Microsoft Excel-Dateien (*.xl*), *.xl*", Title:="Datei(en) auswählen", MultiSelect:=True)
Da meine VBA Kentnisse nicht so gut sind, bekomme ich es leider absolut nicht hin diese beiden Codes miteinander zu verknüpfen.
Ich hoffe mir kann jemand helfen. Sollte so ein ähnliches Anliegen schon in einem anderen Post erklärt sein, bitte ich das zu entschuldigen, denn ich habe leider nichts dazu gefunden.

Public Sub MergeAggregate()
Const FOLDER_PATH = "C:\Ordner\" 'Pfad angepasst
Dim strFilename As String
Dim objTargetWorksheet As Worksheet
Dim objSourceWorkbook As Workbook
Application.ScreenUpdating = False
'Active Tabelle
Set objTargetWorksheet = ActiveSheet
'erste Datei suchen
strFilename = Dir$(FOLDER_PATH & "*.xlsx")
Do Until strFilename = vbNullString
'Öffnet eine Datei
Set objSourceWorkbook = Workbooks.Open(Filename:=FOLDER_PATH & strFilename)
'Kopiert von den Zeilen 2 bis zum Ende
With objSourceWorkbook.ActiveSheet
.Range(.Cells(2, 1), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 6)).Copy
End With
'in die aktive Mappe und fügt sie jeweils unten an
With objTargetWorksheet
.Paste Destination:=.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0)
End With
'Schliesst die geöffnete Datei
Call objSourceWorkbook.Close(SaveChanges:=False)
'lese den nächsten Dateinamen
strFilename = Dir$()
Set objSourceWorkbook = Nothing
Loop
Set objTargetWorksheet = Nothing
Application.ScreenUpdating = True
End Sub
Vielen Dank schon im Voraus!
VG Jane

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

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter in Masterdatei zusammen
13.10.2021 12:54:30
Rudi
Hallo,
teste mal:

Sub MergeAggregate()
Dim vntFILES(), i As Integer
Dim objTargetWorksheet As Worksheet
Dim objSourceWorkbook As Workbook
Application.ScreenUpdating = False
'Active Tabelle
Set objTargetWorksheet = ActiveSheet
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = True
.InitialFileName = "*.xls*"
.Title = "Dateien auswählen"
'.FilterIndex = 1
If .Show Then
ReDim vntFILES(1 To .SelectedItems.Count)
For i = 1 To .SelectedItems.Count
vntFILES(i) = .SelectedItems(i)
Next i
End If
End With
If IsArray(vntFILES) Then
For i = 1 To UBound(vntFILES)
'Öffnet eine Datei
Set objSourceWorkbook = Workbooks.Open(Filename:=vntFILES(i))
'Kopiert von den Zeilen 2 bis zum Ende
With objSourceWorkbook.ActiveSheet
.Range(.Cells(2, 1), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 6)).Copy
End With
'in die aktive Mappe und fügt sie jeweils unten an
With objTargetWorksheet
.Paste Destination:=.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0)
End With
'Schliesst die geöffnete Datei
Call objSourceWorkbook.Close(SaveChanges:=False)
Next i
End If
End Sub
Gruß
Rudi
Anzeige
AW: Tabellenblätter in Masterdatei zusammen
13.10.2021 13:49:28
Jane
Ich bekomme leider bei dieser Zelle immer einen Fehler, nachdem ich meine 4 Dateien im Ordner ausgewählt habe:
.Paste Destination:=.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0)
Laufzeitfehler 1004: Sie können dies hier nicht einfügen, da der Kopier-Bereich und der Einfügebereich nicht die gleiche größe haben.
Wählen Sie im Einfügebereich nur eine Zelle oder einen Bereich mit derselben Größe aus, und versuchen Sie das Einfügen nochmal.
VG Jane
AW: Tabellenblätter in Masterdatei zusammen
13.10.2021 14:18:19
Rudi
Hallo,
das ist aus deinem Originalcode. Was da schief läuft kann ich nicht sagen, da ich deine Dateien nicht kenne.
Versuch im Blindflug:

Sub MergeAggregate()
Dim vntFILES(), i As Integer
Dim objTargetWorksheet As Worksheet
Dim objSourceWorkbook As Workbook
Application.ScreenUpdating = False
'Active Tabelle
Set objTargetWorksheet = ActiveSheet
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = True
.InitialFileName = "*.xls*"
.Title = "Dateien auswählen"
'.FilterIndex = 1
If .Show Then
ReDim vntFILES(1 To .SelectedItems.Count)
For i = 1 To .SelectedItems.Count
vntFILES(i) = .SelectedItems(i)
Next i
End If
End With
If IsArray(vntFILES) Then
For i = 1 To UBound(vntFILES)
'Öffnet eine Datei
Set objSourceWorkbook = Workbooks.Open(Filename:=vntFILES(i))
'Kopiert von den Zeilen 2 bis zum Ende in die aktive Mappe und fügt sie jeweils unten an
With objSourceWorkbook.ActiveSheet
.Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 6).Copy _
objTargetWorksheet.Cells(Rows.Count, 1).End(xlUp).Offset(1)
End With
'Schliesst die geöffnete Datei
Call objSourceWorkbook.Close(SaveChanges:=False)
Next i
End If
End Sub
Gruß
Rudi
Anzeige
AW: Tabellenblätter in Masterdatei zusammen
13.10.2021 17:28:28
Jane
Es kommt leider die selbe Fehlermeldung.
https://www.herber.de/bbs/user/148605.xlsm
Ich habe hier eine Beispielmappe hochgeladen.
davon gibt es z.B. 5 Dateien die ich auswählen möchte im Ordner. Diese Dateien haben alle den gleichen Aufbau. Die Masterdatei ist eine andere Exceldatei mit einem Tabellenblatt Namens Mitarbeitertabelle. Die 5 Dateien siehe Beispielmappe sollen dann in diese Maserdatei auf ein Tabellenblatt (Mitarbeitertabelle) geladen werden und das untereinander.
VG Jane
AW: Tabellenblätter in Masterdatei zusammen
14.10.2021 09:39:03
Rudi
Hallo,
funktioniert tadellos in einer leeren Mappe.
Der Fehler muss in deiner Masterdatei liegen. Verbundene Zellen?
Gruß
Rudi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige