Gefilterte Datensätze ausschneiden und einfügen
Schritt-für-Schritt-Anleitung
Um gefilterte Zeilen in Excel auszuschneiden und in eine andere Tabelle einzufügen, kannst du den folgenden VBA-Code verwenden. Dieser Code filtert die Daten und kopiert die sichtbaren Zeilen in das Blatt "Fehlzeiten".
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Füge ein neues Modul ein (
Einfügen
> Modul
).
- Kopiere den folgenden VBA-Code in das Modul:
Sub Sort()
Dim TB2 As Worksheet, TB3 As Worksheet
Set TB2 = Worksheets("Daten")
Set TB3 = Worksheets("Fehlzeiten")
Application.ScreenUpdating = False
With TB2.ListObjects("Daten")
.Range.AutoFilter Field:=20, Criteria1:="=Samstag", Operator:=xlOr, Criteria2:="=Sonntag"
.Range.AutoFilter Field:=18, Criteria1:="=21:00:00", Operator:=xlAnd
With .AutoFilter.Range
If .Columns(1).SpecialCells(xlCellTypeVisible).Cells.Count > 1 Then
.Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Copy
TB3.Range("A1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Application.DisplayAlerts = False
.Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Delete
Else
MsgBox "Filter liefert kein Ergebnis." & vbLf & "Es wurde nichts kopiert."
End If
End With
.AutoFilter.ShowAllData
End With
Set TB2 = Nothing
Set TB3 = Nothing
End Sub
- Schließe den VBA-Editor und führe das Makro aus (
ALT + F8
, dann das Makro auswählen und auf Ausführen
klicken).
Häufige Fehler und Lösungen
Alternative Methoden
Falls du keine VBA-Lösungen verwenden möchtest, kannst du gefilterte Zeilen auch manuell ausschneiden und in eine andere Tabelle einfügen:
- Filtere die gewünschten Daten in deiner Tabelle.
- Wähle die sichtbaren Zeilen aus.
- Drücke
Strg + C
, um die Daten zu kopieren.
- Wechsle zum Zielblatt ("Fehlzeiten") und drücke
Strg + V
, um die Daten einzufügen.
- Um die Originaldaten zu löschen, gehe zurück zur ursprünglichen Tabelle, wähle die gefilterten Zeilen aus und drücke die
Entf
-Taste.
Praktische Beispiele
-
Beispiel 1: Du hast eine Tabelle mit Arbeitszeiten und möchtest nur die Zeilen für "Samstag" und "Sonntag" ausschneiden und in eine separate Tabelle einfügen. Verwende den obigen VBA-Code, um dies effizient zu tun.
-
Beispiel 2: Du möchtest die Werte aus einer gefilterten Tabelle einfügen. Verwende die Funktion PasteSpecial
, um nur die Werte ohne Formatierungen zu übertragen.
Tipps für Profis
- Nutze die
Application.ScreenUpdating = False
, um die Bildschirmaktualisierung während der Ausführung des Codes zu deaktivieren. Dies kann die Ausführungsgeschwindigkeit erhöhen.
- Setze die Filterkriterien dynamisch, indem du Variablen verwendest, um die Flexibilität des Makros zu erhöhen.
- Speichere deine Arbeit regelmäßig, insbesondere wenn du mit VBA arbeitest, um Datenverlust zu vermeiden.
FAQ: Häufige Fragen
1. Wie kann ich nur gefilterte Zeilen ausschneiden?
Du kannst den VBA-Code verwenden, um nur die Sichtbaren Zeilen zu kopieren und sie dann an einer anderen Stelle einzufügen.
2. Kann ich Daten in eine gefilterte Tabelle einfügen?
Ja, du kannst die PasteSpecial
-Funktion verwenden, um die Werte in eine gefilterte Tabelle einzufügen, während du sicherstellst, dass die Formatierungen nicht übernommen werden.