1.9k Aufrufe
Gefragt in Tabellenkalkulation von
Hi,

ich habe eine sehr umfangreiche Mappe. Nun möchte ich aus allen Arbeitsblätter die Zellen D10-F25 kopieren und in das Arbeitsblatt "Inhalt" in die Spalten A-C einfügen.
Vielen Dank

Herbert

6 Antworten

0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Herbert,

nachfolgendes Makro wäre eine Löungsmöglichkeit. Dieses kopiert Dir aus allen Tabellenblättern den von Dir genannten Bereich in das Tabellenblatt "Inhalt" Spalte A-C.

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 Kopieren()
Dim intSheets As Integer
Dim lngFirstRow As Long
On Error GoTo ERRORHANDLER
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
For intSheets = 1 To Sheets.Count
'1. freie Zelle in Blatt "Inhalt" Spalte "A" ermitteln
lngFirstRow = Sheets("Inhalt").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
'Bereich kopieren und in 1. freie Zelle in Blatt "Inhalt" Spalte "A" einfügen
Sheets(intSheets).Range("D10:F25").Copy Sheets("Inhalt").Cells(lngFirstRow, 1)
Next
ERRORHANDLER:
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
End Sub
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

Bei Fragen melde Dich.

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]
0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

ist grundsätzlich machbar, jedoch aufwändig.

Da du keine Angaben zur BlattBezeichnung machst, kann mann nur allgemein was sagen

Im Prinzip so

=Tabelle1!D10

und dann nach unten Ziehen und nach rechts.

Geht auch mit

Indirekt(Adresse(......)) aber dazu müsste man auch die Tabellennamen wissen

Gruß

Helmut
0 Punkte
Beantwortet von
Hi Coros,

danke für dein Makro. Funktioniert perfekt.

Herbert
0 Punkte
Beantwortet von
Hi Coro,

ich habe das Arbeitsblatt etwas erweitert, indem in dem zu kopierenden Bereich nun Formeln sind. Jetzt werden anstelle der Werte die Formeln kopiert. Kannst du das Makro noch etwas erweitern, damit nicht die Formeln sondern die werte kopiert werden?

Danke Herbert
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Herbert,

dann sieht das Makro wie folgt aus.

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 Kopieren()
Dim intSheets As Integer
Dim lngFirstRow As Long
On Error GoTo ERRORHANDLER
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
For intSheets = 1 To Sheets.Count
'1. freie Zelle in Blatt "Inhalt" Spalte "A" ermitteln
lngFirstRow = Sheets("Inhalt").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
'Bereich kopieren und in 1. freie Zelle in Blatt "Inhalt" Spalte "A" einfügen
Sheets(intSheets).Range("D10:F25").Copy
Sheets("Inhalt").Cells(lngFirstRow, 1).PasteSpecial Paste:=xlPasteValues
Next
ERRORHANDLER:
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
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]
0 Punkte
Beantwortet von
Hi Coros,

perfekt. Danke Herbert
...