Zeile kopieren in Excel: Wert aus Zelle finden und übertragen
Schritt-für-Schritt-Anleitung
Um eine Zeile in Excel zu kopieren, wenn ein bestimmter Wert in einer Zelle gefunden wird, kannst du das folgende Makro verwenden. Damit wird der Wert in einer Zelle gesucht und die gesamte Zeile in ein anderes Tabellenblatt übertragen.
-
Öffne die Excel-Datei mit der Tabelle, die du durchsuchen möchtest.
-
Drücke ALT + F11
, um den VBA-Editor zu öffnen.
-
Klicke auf Einfügen
> Modul
, um ein neues Modul zu erstellen.
-
Füge den folgenden VBA-Code in das Modul ein:
Sub ZeileKopieren()
Dim Quellsheet As Worksheet
Dim Zielsheet As Worksheet
Dim rng As Range
Dim lngQ As Long
Dim lngZ As Long
Set Quellsheet = Sheets("Quellsheet")
Set Zielsheet = Sheets("Zielsheet")
lngQ = Quellsheet.Range("A65536").End(xlUp).Row
lngZ = Zielsheet.Range("A65536").End(xlUp).Row + 1
If lngZ <> 1 Then lngZ = 1
For Each rng In Quellsheet.Range(Quellsheet.Cells(1, 1), Quellsheet.Cells(lngQ, 1))
If rng.Value = Quellsheet.Range("A1").Value Then
rng.EntireRow.Copy Zielsheet.Cells(lngZ, 1)
lngZ = lngZ + 1
End If
Next
End Sub
-
Schließe den VBA-Editor und gehe zurück zu Excel.
-
Führe das Makro aus, indem du ALT + F8
drückst, das Makro auswählst und auf Ausführen
klickst.
Häufige Fehler und Lösungen
Alternative Methoden
Eine alternative Methode ist die Verwendung der Find
-Funktion in Excel. Hier ist ein einfaches Beispiel:
Sub ZeileKopierenMitFind()
On Error Resume Next
Sheets("Tabelle1").Columns(1).Find("irgendwas").EntireRow.Copy Sheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp)(2)
End Sub
Dieses Makro sucht nach dem Wert "irgendwas" in der ersten Spalte von "Tabelle1" und kopiert die gesamte Zeile in "Tabelle2".
Praktische Beispiele
Angenommen, du möchtest nach einem bestimmten Namen in einer Liste suchen:
- Ersetze
Quellsheet.Range("A1").Value
durch die Zelle, die den gesuchten Namen enthält.
- Wenn in Zelle
B1
der Name "Max" steht, wird das Makro alle Zeilen kopieren, die "Max" in der ersten Spalte enthalten.
Tipps für Profis
-
Nutze Application.ScreenUpdating = False
zu Beginn des Makros, um die Bildschirmaktualisierung zu deaktivieren, und setze es am Ende wieder auf True
. Das beschleunigt die Ausführung des Makros erheblich.
-
Verwende Option Explicit
am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft dir, Fehler zu vermeiden.
FAQ: Häufige Fragen
1. Frage: Kann ich das Makro anpassen, um nach mehreren Werten zu suchen?
Antwort: Ja, du kannst eine Schleife erstellen, die durch eine Liste von Werten iteriert und überprüft, ob einer dieser Werte gefunden wird.
2. Frage: Funktioniert das Makro in älteren Excel-Versionen?
Antwort: Ja, das Makro sollte in den meisten Versionen von Excel (ab Excel 2007) funktionieren. Achte darauf, dass dein VBA-Editor korrekt eingerichtet ist.