Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Bereich bis zur leeren Zeile kopieren

Bereich bis zur leeren Zeile kopieren
09.04.2019 17:15:44
Giorgi
Guten Tag ans Forum,
ich stehe vor einem Problem und komme nicht auf die Lösung.
Ich habe eine Datei mit einer variablen Anzahl an Sheets mit unterschiedlichen Namen.
Ich möchte mir ein Makro basteln, dass folgendes leisten soll.
Das Makro durchläuft das Sheet und startet bei A20,falls da was stehen sollte, dann soll es die Zeilen A20 bis K20 markieren und in die nächste Zeile (A21) springen und die gleiche Abfrage durchführen bis die erste leere Zeile kommt.
Die markierte Range soll jetzt kopiert werden und in ein vorhandenes geschlossenes Dokument in die nächste freie Zeile eingefügt werden.
Nachdem Durchlauf soll das Makro in das nächste Sheet springen und die Prozedur wiederholen bis alle Sheets einmal durch waren.
Ich stehe etwas auf den Schlauch bezüglich der Thematik.
Für Anregungen bin ich sehr dankbar.
Gruß G.
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereich bis zur leeren Zeile kopieren
09.04.2019 17:18:14
cysu11
Hi Giorgi,
bitte lade deine Beispieldatei hoch!
LG
Alexandra
AW: Bereich bis zur leeren Zeile kopieren
10.04.2019 15:33:49
cysu11
Hi Giorgi,
probiere mal, musst noch die Zieldatei anpassen!
https://www.herber.de/bbs/user/129065.xlsm
LG
Alexandra
Anzeige
AW: Bereich bis zur leeren Zeile kopieren
11.04.2019 12:48:56
Giorgi
Hallo Alexandra,
ich hab es getestet und danke dir dafür.
Kann die

Cells(Rows.Count, 1).End(xlUp)
auch irgendwie von oben anfangen zu zählen anstatt von unten?
In der Beispieldatei hatte ich vergessen,dass es unter der Tabelle auch Leerzeilen geben kann und dann wieder befüllte Inhalte.
Ich brauche aber nur den oberen Bereich der Tabelle.
Mit deinem Code holt er sich dementsprechend alles.
Gruß Giorgi.
Anzeige
AW: Bereich bis zur leeren Zeile kopieren
11.04.2019 12:50:34
Daniel
Hallo Giorgi,
Cells(1, 1).End(xlDown)
Gruß
Daniel
AW: Bereich bis zur leeren Zeile kopieren
15.04.2019 12:42:54
Giorgi
Danke sehr. Es hat prima geklappt.

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Bereich bis zur leeren Zeile kopieren in Excel


Schritt-für-Schritt-Anleitung

Hier ist eine Schritt-für-Schritt-Anleitung, um einen Bereich bis zur leeren Zeile in Excel zu kopieren. Das folgende VBA-Skript durchläuft alle Sheets in deiner Arbeitsmappe und kopiert die Daten von Zelle A20 bis zur ersten leeren Zeile in ein anderes Dokument.

  1. Öffne den Visual Basic for Applications (VBA) Editor: Drücke ALT + F11 in Excel.

  2. Erstelle ein neues Modul: Klicke im Projektfenster mit der rechten Maustaste auf deine Arbeitsmappe, wähle Einfügen und dann Modul.

  3. Füge den folgenden Code ein:

    Sub BereichBisZurLeerenZeileKopieren()
       Dim ws As Worksheet
       Dim ZielWorkbook As Workbook
       Dim ZielSheet As Worksheet
       Dim LastRow As Long
       Dim CopyRange As Range
    
       ' Zieldatei öffnen (ersetze den Pfad mit deinem eigenen)
       Set ZielWorkbook = Workbooks.Open("C:\Pfad\zu\deiner\Zieldatei.xlsx")
       Set ZielSheet = ZielWorkbook.Sheets(1) ' Setze das Ziel-Sheet hier
    
       For Each ws In ThisWorkbook.Worksheets
           LastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
           Set CopyRange = ws.Range("A20:K" & LastRow)
           CopyRange.Copy ZielSheet.Cells(ZielSheet.Rows.Count, 1).End(xlUp).Offset(1, 0)
       Next ws
    
       ZielWorkbook.Close SaveChanges:=True
    End Sub
  4. Passe den Pfad zur Zieldatei an: Stelle sicher, dass der Pfad zur Zieldatei korrekt ist.

  5. Führe das Makro aus: Drücke F5 oder gehe zu Run > Run Sub/UserForm.


Häufige Fehler und Lösungen

  • Fehler: "Zieldatei nicht gefunden"
    Überprüfe den Pfad zur Zieldatei im Code. Stelle sicher, dass der Pfad korrekt ist und die Datei existiert.

  • Fehler: "Objektvariable nicht gesetzt"
    Dieser Fehler tritt auf, wenn das Ziel-Sheet nicht korrekt gesetzt ist. Überprüfe die Zeile Set ZielSheet = ZielWorkbook.Sheets(1) und stelle sicher, dass das Sheet existiert.

  • Problem mit leeren Zeilen
    Wenn du nur bis zur ersten leeren Zeile kopieren möchtest, stelle sicher, dass die Range korrekt definiert ist, um nur die gewünschten Daten zu erfassen.


Alternative Methoden

Falls du kein VBA verwenden möchtest, kannst du auch die Filter- und Kopierfunktionen in Excel nutzen:

  1. Wähle die Daten in deinem Sheet aus.
  2. Gehe zu Daten > Filter.
  3. Filtere die leeren Zeilen aus.
  4. Kopiere die sichtbaren Zellen und füge sie in dein Ziel-Sheet ein.

Praktische Beispiele

Nehmen wir an, du hast eine Tabelle, die in Zeile 20 beginnt und bis zur leeren Zeile in Spalte A geht. Mit dem oben genannten VBA-Skript kannst du diese Daten einfach in eine andere Arbeitsmappe kopieren.

Wenn du in einem Sheet Werte bis zur leeren Zeile kopieren möchtest, kannst du folgendes Beispiel verwenden:

Sub Beispiel()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Sheet1")
    Dim LastRow As Long
    LastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    ws.Range("A20:K" & LastRow).Copy
End Sub

Tipps für Profis

  • Verwende Named Ranges: Dies hilft, deine Makros flexibler zu gestalten, indem du die Bereiche benennst, die du kopieren möchtest.
  • Fehlerbehandlung: Integriere Fehlerbehandlungsroutinen in dein Makro, um unerwartete Probleme zu vermeiden.
  • Optimiere die Performance: Deaktiviere Screen Updating und automatische Berechnung während der Makroausführung, um die Performance zu verbessern:

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    ' Dein Code hier
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um nur bestimmte Spalten zu kopieren?
Du kannst die Range im Code anpassen, um nur die gewünschten Spalten auszuwählen, zum Beispiel ws.Range("A20:C" & LastRow).

2. Funktioniert das Makro in allen Excel-Versionen?
Ja, das Makro sollte in den meisten modernen Excel-Versionen (Excel 2010 und höher) funktionieren, solange VBA unterstützt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige