Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Bereich kopieren & in neue Datei einfügen

Bereich kopieren & in neue Datei einfügen
Basti
Schönen guten Tag alles zusammen,
ich habe eine Datei mit dem Sheet Reisekosten, aus diesem möchte ich den Bereich "A3:Q20" kopieren und in eine neue Datei, welche ebenfalls das Sheet Reisekosten enthält in den selben Bereich einfügen.
Zu beachten:
Es ist sehr unwahrscheinlich, dass der gesamte Bereich Daten enthält, daher Zusammenfassung mehrerer Bereiche "A3:Q20" in einem Sheet. ABER daher muss auch darauf geachtet werden, dass in dem "ZusammenführungsSheet" untereinander weg eingefügt wird, also die letzte beschriebene Zeile ermittelt und erst in der darauffolgenden eingesetzt wird.
Das ganze soll durch einen Button ausgelöst werden, hier jedoch lediglich eine normale
"Sub" da noch eine weitere "Sub" an den Button gehängt wird.
Habe bereits folgendes zusammengeschustert. Bitte um Verbesserungen oder gar neue Möglichkeiten.

Sub Abschließen(ByVal parName As String)
'Öffne individuelle Datei
Workbooks.Open Filename:=constPfadA & parName & "_Reisekosten.xlsm", UpdateLinks:=False
'Kopiere notwendigen Bereich und füge ihn in individuelle Datei ein
Cells("A3:Q20").Select
Selection.Copy
If Cells("A3:Q20")  "" Then 'wenn der Bereich "A3:Q20" im neuen Sheet frei ist dann...
Workbooks("constPfadRKA & parName & _Reisekosten.xlsm").Worksheets(" _
Reisekostneabrechnung").Activate
ActivateSheet.Paste
Application.DisplayAlerts = False
Else 'Letzte beschriebene Zeile ansteuern und in +1 einfügen
Dim Ende As Long
Ende = ActivateSheet.clles.SpecialCells(xlCellTypeLastCell).Row + 1
Ende = .Activate
End Sub

Vielen lieben Dank für Eure Hilfe!!!

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Bereich kopieren & in neue Datei einfügen
30.08.2012 13:45:10
Dirk
Hallo Basti,
Ich kenn mich zwar nciht mit Office 2010 aus aber
Ende = ActivateSheet.clles.SpecialCells(xlCellTypeLastCell).Row + 1

da ist bestimmt ein Tippfehler drinn
ActivateSheet.celles muss das sicher heißen.
ich hab sowas in der art auch schon mal gemacht (mit Office 2002)
der Code sollte nciht großartig abweichd zu dem vom 2010 sein

Sub Zusammenfassen()
Dim nwb, awb As Object
Dim lzelle As Object
'Pfad und Dateinamen anpassen
'Tabelle1 gegen den Namen der Ziel/Ursprungstabelle austauschen
Set awb = ActiveWorkbook 'Exceldaten, die momentan im zugriff ist "merken"
Set nwb = Workbooks.Open(Filename:="C:\tester\herber\ziel.xls") 'Exceldaten, die das Ziel sein  _
soll mit Pfad!!!!
With nwb.Sheets("Tabelle1")
If .Range("a3") = "" Then
Set lzelle = Range("a3") 'wenn a3 leer ist bei A3 beginnen
Else
Set lzelle = .Range("A:Q").Find(What:="*", after:=.Range("A1"), LookIn:=xlValues, _
LookAt:=xlWhole, searchdirection:=xlPrevious)            'letzte beschriebene  _
Zelle im bereich "A:Q" ermitteln
End If
End With
awb.Sheets("Tabelle1").Range("A3:Q20").Copy   'Koppieren
nwb.Sheets("Tabelle1").Cells(lzelle.Row + 1, 1).PasteSpecial Paste:=xlPasteValues, Operation:= _
xlNone, SkipBlanks _
:=False, Transpose:=False   'Werte einfügen
Application.CutCopyMode = False
Set lzelle = Nothing
Set nwb = Nothing
Set awb = Nothing
End Sub
es kann sein, das du hinter das open (innerhalb der Klammern noch das ", UpdateLinks:=False" setzten must.
das müsstest du einfach mal testen.
Gruß
Drik
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Bereich kopieren und in eine neue Datei einfügen


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Datei mit dem Sheet "Reisekosten".

  2. Kopiere den gewünschten Bereich "A3:Q20". Achte darauf, dass der Bereich möglicherweise leer ist.

  3. Erstelle eine neue Datei oder öffne die Zieldatei, in die die Daten eingefügt werden sollen.

  4. Finde die letzte beschriebene Zeile im Ziel-Sheet. Dies kannst du mit dem folgenden VBA-Code tun:

    Dim Ende As Long
    Ende = Sheets("Reisekosten").Cells(Rows.Count, 1).End(xlUp).Row + 1
  5. Füge den kopierten Bereich in die Ziel-Datei ein:

    Worksheets("Reisekosten").Cells(Ende, 1).PasteSpecial Paste:=xlPasteValues
  6. Schließe die Zieldatei und speichere die Änderungen.


Häufige Fehler und Lösungen

  • Tippfehler in der Syntax: Achte darauf, dass alle Befehle korrekt geschrieben sind. Zum Beispiel sollte ActivateSheet.clles eigentlich ActivateSheet.Cells heißen.
  • Falsche Bezugnahme auf das Arbeitsblatt: Wenn du ein Arbeitsblatt aktivieren möchtest, stelle sicher, dass der Name korrekt ist und das Arbeitsblatt existiert.
  • Der kopierte Bereich ist leer: Wenn der Bereich "A3:Q20" leer ist, überprüfe deine Datenquelle auf mögliche Fehler oder Datenverlust.

Alternative Methoden

Neben dem VBA-Ansatz gibt es auch die Möglichkeit, mit Copy & Paste direkt in Excel zu arbeiten:

  1. Wähle den Bereich "A3:Q20" manuell aus.
  2. Kopiere den Bereich (Strg + C).
  3. Wechsle zur neuen Datei und wähle die Zelle aus, wo du die Daten einfügen möchtest.
  4. Füge die Daten ein (Strg + V).

Diese Methode eignet sich gut für einmalige Aufgaben, während VBA für wiederholbare Prozesse und Automatisierung besser geeignet ist.


Praktische Beispiele

Hier ist ein Beispiel für einen einfachen VBA-Code, der das Kopieren und Einfügen automatisiert:

Sub BereichKopieren()
    Dim nwb As Workbook
    Dim awb As Workbook
    Dim Ende As Long

    Set awb = ThisWorkbook
    Set nwb = Workbooks.Open("C:\Pfad\zur\Zieldatei.xlsm")

    ' Berechnung der letzten Zeile im Ziel-Sheet
    Ende = nwb.Sheets("Reisekosten").Cells(Rows.Count, 1).End(xlUp).Row + 1

    ' Kopieren und Einfügen
    awb.Sheets("Reisekosten").Range("A3:Q20").Copy
    nwb.Sheets("Reisekosten").Cells(Ende, 1).PasteSpecial Paste:=xlPasteValues

    nwb.Close SaveChanges:=True
End Sub

Dieser Code öffnet die Zieldatei, ermittelt die letzte gefüllte Zeile und fügt die Daten entsprechend ein.


Tipps für Profis

  • Verwende Variablen für Dateipfade, um deinen Code einfacher zu warten.
  • Fehlerbehandlung einfügen: Nutze On Error Resume Next, um potenzielle Fehler zu ignorieren.
  • Dokumentiere deinen Code: Schreibe Kommentare, um den Zweck jeder Funktion deutlich zu machen. So wird die Wartung und das Verständnis für andere Benutzer einfacher.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass der Bereich immer kopiert wird, auch wenn er leer ist?
Verwende eine Bedingung, um zu überprüfen, ob der Bereich tatsächlich Daten enthält, bevor du versuchst, ihn zu kopieren.

2. Kann ich den Code anpassen, um mehrere Bereiche zu kopieren?
Ja, du kannst mehrere Range-Objekte in einer Schleife durchlaufen und sie nacheinander kopieren und einfügen.

3. Was ist der Unterschied zwischen Paste und PasteSpecial?
Paste fügt alles ein, während PasteSpecial dir erlaubt, spezifische Formate oder Werte einzufügen, was in vielen Fällen nützlich ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige