Tabellen durchsuchen und zeilenweise kopieren
Schritt-für-Schritt-Anleitung
Um alle Tabellenblätter in Deiner Excel-Arbeitsmappe nach einem Namen zu durchsuchen und die entsprechenden Zeilen zu kopieren, kannst Du den folgenden VBA-Code verwenden:
- Öffne Excel und lade die Arbeitsmappe, die Du bearbeiten möchtest.
- Drücke
Alt + F11
, um den VBA-Editor zu öffnen.
- Füge ein neues Modul hinzu, indem Du mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsx)“ klickst und „Einfügen“ > „Modul“ auswählst.
- Kopiere den folgenden VBA-Code in das Modul:
Sub test()
Dim Tabelle As Worksheet
Dim Name As String
Dim Zeile As Long
Dim firstAddress As String
Dim Suchzelle As Range
Zeile = 2
Name = Worksheets("Zusammenfassung").Range("D1").Text
For Each Tabelle In ActiveWorkbook.Worksheets
If Tabelle.Name <> "Zusammenfassung" Then
Tabelle.Activate
With Tabelle.Range("E:E")
Set Suchzelle = .Find(Name, LookIn:=xlValues)
If Not Suchzelle Is Nothing Then
firstAddress = Suchzelle.Address
Do
If Suchzelle.Offset(0, 2).Value <> "erledigt" Then ' Überprüfung auf "erledigt"
Rows(Suchzelle.Row).Select
Selection.Copy
ActiveSheet.Paste Destination:=Worksheets("Zusammenfassung").Range(Zeile & ":" & Zeile)
Zeile = Zeile + 1
End If
Set Suchzelle = .FindNext(Suchzelle)
Loop While Not Suchzelle Is Nothing And Suchzelle.Address <> firstAddress
End If
End With
End If
Next Tabelle
End Sub
- Schließe den VBA-Editor und kehre zu Excel zurück.
- Führe das Makro aus, indem Du auf
Entwicklertools
> Makros
klickst und das test
-Makro auswählst.
Mit diesem Code kannst Du alle Blätter in Deiner Arbeitsmappe durchsuchen und die gewünschten Zeilen in das Blatt „Zusammenfassung“ kopieren, solange neben dem Namen in Spalte „G“ nicht „erledigt“ steht.
Häufige Fehler und Lösungen
Alternative Methoden
Wenn Du die Funktionalität ohne VBA nutzen möchtest, kannst Du auch die SVERWEIS
-Funktion verwenden, um Daten zu suchen. Allerdings ist dies weniger flexibel als das Durchsuchen aller Blätter, da SVERWEIS
nur auf ein bestimmtes Blatt zugreift.
Praktische Beispiele
Angenommen, Du hast eine Arbeitsmappe mit mehreren Blättern und möchtest alle Blätter nach dem Namen „Max Mustermann“ durchsuchen. Setze in die Zelle „D1“ des Blattes „Zusammenfassung“ den Namen „Max Mustermann“ ein. Wenn Du das Makro ausführst, werden alle Zeilen, die in den anderen Blättern den Namen enthalten und nicht „erledigt“ sind, in das Blatt „Zusammenfassung“ kopiert.
Tipps für Profis
- Nutze die Funktion „Fehlerbehandlung“ in Deinem VBA-Code, um sicherzustellen, dass das Makro auch bei unerwarteten Fehlern stabil bleibt.
- Du kannst die Suche weiter anpassen, indem Du zusätzliche Bedingungen hinzufügst, um noch spezifischere Ergebnisse zu erzielen.
FAQ: Häufige Fragen
1. Wie kann ich das Makro anpassen, um nach mehreren Namen zu suchen?
Du kannst eine Schleife hinzufügen, die über eine Liste von Namen iteriert, anstatt nur einen Namen aus „D1“ zu verwenden.
2. Funktioniert dieser Code in Excel 365?
Ja, der Code ist mit Excel 365 und anderen Versionen kompatibel, die VBA unterstützen.