den nachfolgenden Code habe ich einmal im Internet gefunden. Er soll alle Daten aller Blätter in e1nem Blatt zusammen fassen.
Allerdings bleibt er bei der folgenden Zeile stehen:
objWB.Sheets(1).Cells(L, 1).Resize(UBound(vntArr), lsp) = vntArr
Es kommt der Fehler: Laufzeitfehler 13: Typen unverträglich
Wo liegt der Fehler?
Option Explicit
'Das Makro legt zuerste eine neue Datei an und kopiert dann alle
'in dieser Mappe vorhandenen Daten aller Blätter untereinander
'in 1 Blatt, es wird also eine Zusammenfassung aller Blätter erstellt.
'Die Ermittlung der letzten Spalte erfolgt anhand der Zeile 1 und
'die Ermittlung der letzten Zeile anhand der Spalte B.
Sub AlleBlätterInEineDateiKopieren()
Dim objWB As Workbook
Dim objWS As Worksheet
Dim L As Long
Dim vntArr As Variant
Dim lsp As Long
Dim lz As Long
Set objWB = Workbooks.Add 'Das VBA Programm sollte eine neue Datei erzeugen,..
L = 1
For Each objWS In ThisWorkbook.Worksheets 'dann klappert es Blatt 1...ab
With objWS
lsp = .Cells(1, .Columns.Count).End(xlToLeft).Column 'letzte benutzte Spalte _
bezogen auf Zeile 1
lz = .Cells(.Rows.Count, 2).End(xlUp).Row 'letzte benutzte Zeile bezogen auf Spalte _
2, also B
vntArr = .Range("A1", .Cells(lz, lsp)).Value 'kopiert das...
objWB.Sheets(1).Cells(L, 1).Resize(UBound(vntArr), lsp) = vntArr '...und fügt die _
WERTE dann in der Liste ein.
L = L + UBound(vntArr)
End With
Next 'Dann weiter mit Blatt 2 und anhängen... Blatt 3 und so weiter.
End Sub
Hier noch eine Beispieldatei:https://www.herber.de/bbs/user/96639.xlsm
Danke und Servus, Walter