Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bereich kopieren und in letzte frei Zeile einfügen

Forumthread: Bereich kopieren und in letzte frei Zeile einfügen

Bereich kopieren und in letzte frei Zeile einfügen
Dietmar
Hallo in die Runde,
ich habe auf einem Tabellenblatt einen Bereich, den ich auf dem gleichen Tabellenblatt nach unten duplizieren will (also mit allen Formeln und Formaten). Anschließend soll der Inhalte einer bestimmten Zelle gelöscht werden.
Beispiel:
1. Schritt: A6:Z20 kopieren
2. Schritt: letzte freie Zeile suchen
3. Schritt: den kopierten Bereichgenau darunter hineinkopieren (in diesem Fall ab Zeile 21)
und zwar mit allen Formeln und Formatierungen (also 1:1)
3. Schritt: Löschen des Inhalts der ehemals in Zelle B21 steht (der Inhalt aus Zelle B6)
Hier soll dann eine neue Eintragung erfolgen(in diesem Fall ab Zeile 21) .
Da ich diese Aktion häufiger wiederholen möchte, muss der Löschvorgang für den Inhalt der Zelle B21 variabel sein.
Herzlichen Dank vorab!
Dietmar aus Aachen
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Bereich kopieren und in letzte frei Zeile einfügen
14.12.2010 22:29:31
Gerd
Hallo Dietmar!
Sub kopieren()
Dim rngTopLeft As Range
Set rngTopLeft = Cells(Rows.Count, 1).End(xlUp).Offset(1)
Range("A6:Z20").Copy Destination:=rngTopLeft
rngTopLeft.Offset(0, 1).ClearContents
End Sub
Gruß Gerd
Klasse! noch eine Ergänzungsfrage
15.12.2010 11:40:03
Dietmar
Hallo Gerd,
das funktioniert einfach nur spitzenmäßig! DANKE!
Nun ist mir noch eine Idee gekommen:
Es handelt sich bei dem zu kopierenden Bereich um eine Art Vorlage für die Erfassung von wiederkehrenden
Erfassungsfeldern, die ich auf dem Bearbeitungstabellenblatt je nach Bedarf per Button nach unten einfüge.
Wie müsste der Code lauten, wenn ich diese Vorlage auf einem anderen Tabellenblatt hinterlegen möchte?
Also:
Ich befinde mich im Tabellenblatt "Bearbeitung" und möchte nun aus dem Tabellenblatt "Vorlage" den Bereich A6:Z20 in das Tabellenblatt "Bearbeitung" in die erste freie Zeile kopieren.
Es wäre super, wenn Du mir das auch noch sagen könntest :-)
Herzliche Grüße
Dietmar
Anzeige
AW: Klasse! noch eine Ergänzungsfrage
15.12.2010 21:23:03
Gerd
Hallo Dietmar,
nach deiner Beschreibung ggf. so:
Sub kopieren2()
Dim rngTopLeft As Range
Set rngTopLeft = Cells(Rows.Count, 1).End(xlUp).Offset(1)
Worksheets("Vorlage").Range("A6:Z20").Copy Destination:=rngTopLeft
rngTopLeft.Offset(0, 1).ClearContents
End Sub
Gruß Gerd
Anzeige
Yess ! That's it
16.12.2010 02:04:21
Dietmar
Hallo Gerd,
vielen Dank!
Auch für Deine Geduld... denn mit ein bisschen Überlegung hätte ich da auch drauf kommen können.
Dankbare Grüße
Dietmar
;
Anzeige
Anzeige

Infobox / Tutorial

Bereich kopieren und in letzte freie Zeile einfügen


Schritt-für-Schritt-Anleitung

Um einen Bereich in Excel zu kopieren und in die letzte freie Zeile einzufügen, kannst du den folgenden VBA-Code verwenden. Dieser Code funktioniert in Excel-Versionen, die Makros unterstützen.

  1. Öffne dein Excel-Dokument.
  2. Drücke Alt + F11, um den VBA-Editor zu öffnen.
  3. Gehe zu Einfügen > Modul, um ein neues Modul zu erstellen.
  4. Füge den folgenden Code ein:
Sub kopieren()
    Dim rngTopLeft As Range
    Set rngTopLeft = Cells(Rows.Count, 1).End(xlUp).Offset(1)
    Range("A6:Z20").Copy Destination:=rngTopLeft
    rngTopLeft.Offset(0, 1).ClearContents
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Drücke Alt + F8, wähle kopieren aus der Liste und klicke auf Ausführen.

Dieser Code kopiert den Bereich von A6 bis Z20 und fügt ihn in die erste freie Zeile ein, während der Inhalt von Zelle B21 gelöscht wird.


Häufige Fehler und Lösungen

  • Fehler: Der Bereich wird nicht korrekt kopiert.

    • Lösung: Stelle sicher, dass der zu kopierende Bereich genau definiert ist und sich auf dem richtigen Arbeitsblatt befindet.
  • Fehler: Der Inhalt von Zelle B21 wird nicht gelöscht.

    • Lösung: Überprüfe, ob der Offset korrekt gesetzt ist. Der Code rngTopLeft.Offset(0, 1).ClearContents löscht nur den Inhalt der Zelle rechts von der eingefügten Zeile.

Alternative Methoden

Eine alternative Methode, um den Bereich zu kopieren, besteht darin, die Daten manuell zu kopieren und einzufügen. Du kannst auch die Funktion „Inhalte einfügen“ verwenden, um nur Werte oder Formate zu übernehmen.

  1. Wähle den Bereich A6:Z20 aus.
  2. Rechtsklicke und wähle „Kopieren“.
  3. Gehe zur letzten freien Zeile, klicke mit der rechten Maustaste und wähle „Inhalte einfügen“.

Diese Methode ist jedoch weniger automatisiert und erfordert manuelle Eingriffe.


Praktische Beispiele

Ein Beispiel für den VBA-Code, wenn du den Bereich aus einem anderen Tabellenblatt kopieren möchtest:

Sub kopieren2()
    Dim rngTopLeft As Range
    Set rngTopLeft = Sheets("Bearbeitung").Cells(Rows.Count, 1).End(xlUp).Offset(1)
    Worksheets("Vorlage").Range("A6:Z20").Copy Destination:=rngTopLeft
    rngTopLeft.Offset(0, 1).ClearContents
End Sub

Dieser Code kopiert den Bereich von „Vorlage“ und fügt ihn in das Tabellenblatt „Bearbeitung“ ein.


Tipps für Profis

  • Automatisierung: Du kannst den Code in eine Schaltfläche einfügen, um die Ausführung zu erleichtern.
  • Variabilität: Wenn du den Löschvorgang variabel gestalten möchtest, kannst du den Zellbezug in ClearContents dynamisch gestalten, indem du ihn in eine Variable speicherst.

FAQ: Häufige Fragen

1. Wie kann ich den kopierten Bereich anpassen?
Du kannst die Zellreferenzen im Code ändern (z. B. Range("A6:Z20")), um einen anderen Bereich zu kopieren.

2. Funktioniert dieser Code in Excel für Mac?
Ja, der VBA-Code funktioniert auch in der Mac-Version von Excel, solange Makros aktiviert sind.

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