Hallo Hanni,
dann eben wie folgt.
Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.
Option Explicit
Sub Daten_kopieren()
Dim intAnzahlWorkbooks As Integer
Dim intAnzahlSheets As Integer
Dim lngFirstRow As Long
On Error GoTo ERRORHANDLER
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
.Cursor = xlWait
.ErrorCheckingOptions.BackgroundChecking = False
End With
'Alle geöffneten Exceldateien
For intAnzahlWorkbooks = 1 To Workbooks.Count
'Alle Tabellenblätter in der geöffneten Exceldatei
For intAnzahlSheets = 1 To Workbooks(intAnzahlWorkbooks).Sheets.Count
'Wenn der Name der Exceldatei ein anderer ist als der, aus der das _
Makro gestartet wurde dann...
If Workbooks(intAnzahlWorkbooks).Name <> ActiveWorkbook.Name Then
'erste freie Zeile in Spalte H in der aktuellen Datei ermitteln und in _
Variable "lngFirstRow" schreiben
lngFirstRow = ActiveSheet.Cells(Rows.Count, 8).End(xlUp).Offset(1, 0).Row
'Daten kopieren
Workbooks(intAnzahlWorkbooks).Sheets(intAnzahlSheets).Range("H6:I15").Copy
ActiveWorkbook.Sheets("Tabelle1").Cells(lngFirstRow, 8).PasteSpecial
End If
Next intAnzahlSheets
Next intAnzahlWorkbooks
ERRORHANDLER:
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
.Calculate
.Cursor = xlDefault
.ErrorCheckingOptions.BackgroundChecking = True
End With
End Sub
MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]