Gefilterte Zeilen in Excel richtig kopieren
Schritt-für-Schritt-Anleitung
Um nur die sichtbaren Zeilen eines Autofilters in eine neue Tabelle zu kopieren, kannst Du den folgenden VBA-Code verwenden:
Sub KopiereSichtbareZeilen()
Dim wsZiel As Worksheet
Set wsZiel = ThisWorkbook.Worksheets("ZielTabelle") ' Ersetze "ZielTabelle" durch den Namen Deiner Ziel-Tabelle
Cells.SpecialCells(xlCellTypeVisible).Copy Destination:=wsZiel.Range("A1")
End Sub
Stelle sicher, dass der Autofilter aktiv ist, bevor Du diesen Code ausführst. Wenn Du eine Fehlermeldung über ungenügenden Arbeitsspeicher erhältst, könnte die Datenmenge zu groß sein. In diesem Fall solltest Du die Anzahl der zu kopierenden Zellen reduzieren.
Häufige Fehler und Lösungen
-
„Nicht genug Arbeitsspeicher“
-
„Autofilter deaktiviert“
Alternative Methoden
Wenn Du dennoch Schwierigkeiten mit SpecialCells(xlCellTypeVisible)
hast, probiere es mit einer Schleife, um jede sichtbare Zeile einzeln zu kopieren:
Sub KopiereZeileFürZeile()
Dim wsZiel As Worksheet
Set wsZiel = ThisWorkbook.Worksheets("ZielTabelle")
Dim i As Long
Dim j As Long
j = 1 ' Zeilenzähler für Ziel-Tabelle
For i = 1 To ActiveSheet.UsedRange.Rows.Count
If Not Rows(i).Hidden Then
Rows(i).Copy Destination:=wsZiel.Cells(j, 1)
j = j + 1
End If
Next i
End Sub
Praktische Beispiele
Hier sind einige praktische Beispiele, wie Du gefilterte Daten effizient kopieren kannst:
Sub Beispiel1()
' Kopiere nur sichtbare Zellen in die Ziel-Tabelle
Dim wsZiel As Worksheet
Set wsZiel = ThisWorkbook.Worksheets("ZielTabelle")
ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible).Copy Destination:=wsZiel.Range("A1")
End Sub
Sub Beispiel2()
' Schleife über sichtbare Zeilen
Dim wsZiel As Worksheet
Set wsZiel = ThisWorkbook.Worksheets("ZielTabelle")
Dim i As Long
Dim j As Long
j = 1
For i = 1 To ActiveSheet.UsedRange.Rows.Count
If Not Rows(i).Hidden Then
Rows(i).Copy Destination:=wsZiel.Cells(j, 1)
j = j + 1
End If
Next i
End Sub
Tipps für Profis
- Nutze
Application.ScreenUpdating = False
, um das Flackern des Bildschirms während des Kopierens zu vermeiden.
- Setze
Application.Calculation = xlCalculationManual
, um die Berechnung während des Kopiervorgangs zu deaktivieren. Aktiviere sie dann wieder mit Application.Calculation = xlCalculationAutomatic
.
FAQ: Häufige Fragen
1. Was ist SpecialCells(xlCellTypeVisible)
?
SpecialCells(xlCellTypeVisible)
ist eine Methode in VBA, die nur die sichtbaren Zellen eines bestimmten Bereichs auswählt. Diese Methode ist besonders nützlich, wenn Du mit gefilterten Daten arbeitest.
2. Welche Excel-Version benötige ich für diese Methoden?
Die oben genannten Methoden sind in Excel 2007 und höher verfügbar. Stelle sicher, dass Du eine aktuelle Version verwendest, um die volle Funktionalität zu nutzen.