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

Masterdatei erstellen

Masterdatei erstellen
23.09.2014 12:55:40
WalterK
Hallo,
der nachfolgende Code liest aus allen Dateien eines Ordners eine Tabelle aus und kopiert alle Datensätze in eine einzige Tabelle. Funktioniert auch.
Jetzt wollte ich den Code auch mit Excel 2010 benutzen um xlsx-Dateien einzulesen. Deshalb habe ich in der Zeile strDateiname das .xls durch .xlsx ersetzt.
Allerdings kommt der Fehler: Laufzeitfehler 1004: Die Methode Open für das Objekt Workbooks ist fehlgeschlagen und es wird die Zeile Set wkbQuelle = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & strDateiname) gelb markiert.
Option Explicit
Sub zusammenfuegen()
Dim strDateiname As String
Dim wksZiel As Worksheet, wkbQuelle As Workbook, wksQuelle As Worksheet
Dim loLetzte1 As Long
Dim loLetzte2 As Long
Dim inLetzte As Integer
Application.ScreenUpdating = False
strDateiname = Dir(ThisWorkbook.Path & "\*.xls")
Set wksZiel = ThisWorkbook.Worksheets("Tabelle1")
Do While strDateiname  ""
If strDateiname  ThisWorkbook.Name Then
Set wkbQuelle = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & strDateiname)
Set wksQuelle = ActiveSheet 'ggf. = wkbQuelle.Worksheets(1)
loLetzte1 = wksZiel.UsedRange.SpecialCells(xlCellTypeLastCell).Row
With wksQuelle
loLetzte2 = .UsedRange.SpecialCells(xlCellTypeLastCell).Row
inLetzte = .UsedRange.SpecialCells(xlCellTypeLastCell).Column
.Range(.Cells(3, 1), .Cells(loLetzte2, inLetzte)).Copy _
Destination:=wksZiel.Cells(loLetzte1 + 1, 1)
End With
wkbQuelle.Close True
End If
strDateiname = Dir
Loop
Set wkbQuelle = Nothing: Set wksQuelle = Nothing: Set wksZiel = Nothing
Application.ScreenUpdating = True
End Sub
Danke für die Hilfe und Servus, Walter

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

Betreff
Datum
Anwender
Anzeige
AW: Masterdatei erstellen
23.09.2014 13:23:53
fcs
Hallo Walter,
ich hab dein Makro in der folgenden Form getestet.
Sub zusammenfuegen()
Dim strDateiname As String
Dim wksZiel As Worksheet, wkbQuelle As Workbook, wksQuelle As Worksheet
Dim loLetzte1 As Long
Dim loLetzte2 As Long
Dim inLetzte As Integer
Application.ScreenUpdating = False
strDateiname = Dir(ThisWorkbook.Path & "\*.xlsx")  '###angepasst###
Set wksZiel = ThisWorkbook.Worksheets("Tabelle1")
Do While strDateiname  ""
If strDateiname  ThisWorkbook.Name Then
Set wkbQuelle = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & strDateiname)
Set wksQuelle = ActiveSheet 'ggf. = wkbQuelle.Worksheets(1)
loLetzte1 = wksZiel.UsedRange.SpecialCells(xlCellTypeLastCell).Row
With wksQuelle
loLetzte2 = .UsedRange.SpecialCells(xlCellTypeLastCell).Row
inLetzte = .UsedRange.SpecialCells(xlCellTypeLastCell).Column
.Range(.Cells(3, 1), .Cells(loLetzte2, inLetzte)).Copy _
Destination:=wksZiel.Cells(loLetzte1 + 1, 1)
End With
wkbQuelle.Close True
End If
strDateiname = Dir
Loop
Set wkbQuelle = Nothing: Set wksQuelle = Nothing: Set wksZiel = Nothing
Application.ScreenUpdating = True
End Sub

Es funktioniert.
Hast du etwas außergewöhnlich Dateinamen, mit denen der Dir-Befehl nicht klarkommt?
Was für Werte werden denn für strDateiname angezeigt?
Gruß
Franz

Anzeige
AW: Masterdatei erstellen
23.09.2014 15:30:34
WalterK
Hallo Franz,
danke für's Nachschauen.
Es handelt sich um 21 Dateien und ich habe jetzt alle geöffnet. Bei zweien kam der Hinweis, dass nicht lesbarer Inhalt vorhanden ist. Diese 2 Dateien habe ich neu abgespeichert und jetzt läuft der Code durch. Problem ist also behoben.
Danke und Servus, Walter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige