Excel-Tutorial: Wenn Zelle Text enthält, in ein anderes Blatt kopieren
Hier ist ein ausführliches Tutorial, das verschiedene Methoden abdeckt – von der einfachen Formel-Lösung bis hin zur Automatisierung per VBA.
In Excel gibt es oft die Situation, dass man Daten filtern und die entsprechenden Zeilen automatisch auf ein anderes Arbeitsblatt übertragen möchte. Je nachdem, ob Sie eine dynamische Liste oder eine dauerhafte Kopie benötigen, gibt es drei gängige Wege.
Methode 1: Die dynamische Lösung mit der FILTER-Funktion
Empfohlen für Microsoft 365 und Excel 2021+
Dies ist die modernste Methode. Die Daten werden nicht physisch „kopiert“, sondern automatisch auf dem Zielblatt angezeigt, sobald die Bedingung im Quellblatt erfüllt ist.
Das Szenario:
- Blatt 1 (Daten): Ihre Hauptliste. In Spalte A stehen Projektnamen.
- Blatt 2 (Ziel): Hier sollen alle Zeilen erscheinen, die in Spalte A das Wort "Abgeschlossen" enthalten.
Schritte:
- Wechseln Sie auf das Zielblatt.
- Klicken Sie in die Zelle, in der die Liste beginnen soll (z. B. A2).
- Geben Sie folgende Formel ein:
=FILTER(Daten!A2:C100; ISTZAHL(SUCHEN("Abgeschlossen"; Daten!A2:A100)); "Keine Treffer")Daten!A2:C100: Der gesamte Bereich, den Sie durchsuchen/kopieren wollen.SUCHEN("Abgeschlossen"; ...): Sucht nach dem Text (Groß-/Kleinschreibung egal).ISTZAHL(...): Wandelt das Ergebnis in WAHR/FALSCH für die Filter-Funktion um.
Methode 2: Die Automatisierung mit VBA (Makro)
Empfohlen, wenn die Daten tatsächlich physisch kopiert werden sollen (z.B. als Archiv).
Mit diesem kleinen Skript durchsucht Excel eine Spalte und kopiert die gesamte Zeile in ein anderes Blatt, sobald ein bestimmtes Wort gefunden wird.
Schritte:
- Drücken Sie
ALT + F11, um den VBA-Editor zu öffnen. - Gehen Sie auf Einfügen > Modul.
- Kopieren Sie diesen Code hinein:
Sub KopiereZeilenBasierendAufText()
Dim quellBlatt As Worksheet
Dim zielBlatt As Worksheet
Dim suchBegriff As String
Dim letzteZeile As Long
Dim zielZeile As Long
Dim i As Long
' Einstellungen
Set quellBlatt = ThisWorkbook.Sheets("Tabelle1") ' Name Ihres Quellblatts
Set zielBlatt = ThisWorkbook.Sheets("Tabelle2") ' Name Ihres Zielblatts
suchBegriff = "Kopieren" ' Wonach suchen wir?
letzteZeile = quellBlatt.Cells(quellBlatt.Rows.Count, "A").End(xlUp).Row
' Startzeile im Zielblatt finden (nächste freie Zeile)
zielZeile = zielBlatt.Cells(zielBlatt.Rows.Count, "A").End(xlUp).Row + 1
For i = 1 To letzteZeile
' Prüfen, ob der Suchbegriff in Spalte A (1) vorkommt
If InStr(1, quellBlatt.Cells(i, 1).Value, suchBegriff, vbTextCompare) > 0 Then
quellBlatt.Rows(i).Copy Destination:=zielBlatt.Rows(zielZeile)
zielZeile = zielZeile + 1
End If
Next i
MsgBox "Kopiervorgang abgeschlossen!"
End Sub
- Passen Sie
"Tabelle1","Tabelle2"und"Kopieren"im Code an Ihre Bedürfnisse an. - Drücken Sie
F5oder klicken Sie auf das Play-Symbol, um das Makro auszuführen.
Methode 3: Die manuelle Methode (Schnellfilter)
Empfohlen für einmalige Aktionen ohne Formeln oder Programmierung.
- Markieren Sie Ihre Quell-Daten.
- Drücken Sie
STRG + UMSCHALT + L, um den Filter zu aktivieren. - Klicken Sie auf den Pfeil in der Spalte, die den Text enthält.
- Wählen Sie Textfilter > Enthält... und geben Sie Ihren Suchbegriff ein.
- Markieren Sie die gefilterten Zeilen, drücken Sie
STRG + C. - Wechseln Sie zum Zielblatt und drücken Sie
STRG + V.
Welche Methode ist die richtige für Sie?
| Methode | Vorteil | Nachteil |
|---|---|---|
| FILTER-Formel | Live-Update, sobald sich Daten ändern. | Funktioniert nur in neueren Excel-Versionen. |
| VBA Makro | Kopiert Daten dauerhaft; kann komplexe Logiken verarbeiten. | Datei muss als .xlsm gespeichert werden; Makros müssen aktiviert sein. |
| Manuell (Filter) | Keine Vorkenntnisse nötig. | Muss jedes Mal manuell wiederholt werden. |
Pro-Tipp: Wenn Sie mit sehr großen Datenmengen arbeiten, sollten Sie sich das Tool Power Query (Daten > Daten abrufen) ansehen. Es ist das mächtigste Werkzeug in Excel, um Daten nach Bedingungen zu transformieren und an anderen Orten auszugeben.