Neue Zeile trotz Autofilter einfügen in Excel
Schritt-für-Schritt-Anleitung
Um eine neue Zeile in eine Excel-Tabelle einzufügen, während ein Autofilter aktiv ist, kannst Du den folgenden VBA-Code verwenden. Dieser Code merkt sich die aktuellen Filtereinstellungen, zeigt alle Daten an, fügt die neue Zeile ein und setzt die Filter anschließend wieder zurück.
- Öffne Excel und drücke
ALT + F11, um den VBA-Editor zu öffnen.
- Wähle
Einfügen > Modul, um ein neues Modul zu erstellen.
- Füge den folgenden Code in das Modul ein:
Sub DatenSatzEinfügen()
Dim wks As Worksheet, oFilter As Filter
Dim arrCriteria1() As String, arrOperator() As Long, arrCriteria2() As String
Dim arrON() As Boolean, bolFilter As Boolean
Dim iIndex As Long
On Error GoTo Fehler
Set wks = ActiveSheet
With wks
'Check ob Autofilter aktiv
If .AutoFilterMode = True Then
'Check ob Filter gesetzt
For Each oFilter In .AutoFilter.Filters
If oFilter.On = True Then
bolFilter = True
Exit For
End If
Next
If bolFilter = True Then
'Filtereinstellungen merken
ReDim arrCriteria1(1 To .AutoFilter.Filters.Count)
ReDim arrCriteria2(1 To .AutoFilter.Filters.Count)
ReDim arrOperator(1 To .AutoFilter.Filters.Count)
ReDim arrON(1 To .AutoFilter.Filters.Count)
For iIndex = 1 To .AutoFilter.Filters.Count
arrON(iIndex) = .AutoFilter.Filters(iIndex).On
If .AutoFilter.Filters(iIndex).On = True Then
arrCriteria1(iIndex) = .AutoFilter.Filters(iIndex).Criteria1
arrOperator(iIndex) = .AutoFilter.Filters(iIndex).Operator
arrCriteria2(iIndex) = .AutoFilter.Filters(iIndex).Criteria2
End If
Next
.ShowAllData
End If
End If
'Daten kopieren
.Rows("11:13").Copy 'hier wird der neue Versuchsträger eingetragen
.Rows("15:17").Insert Shift:=xlDown 'bisher aktueller Eintrag, jetzt neue Zeile und Ziel
.Rows("15:17").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
.Rows("15:17").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
'Filter wieder setzen
If bolFilter = True Then
For iIndex = 1 To .AutoFilter.Filters.Count
If arrON(iIndex) = True Then
If arrCriteria2(iIndex) = "" Then
.AutoFilter.Range.AutoFilter Field:=iIndex, Criteria1:=arrCriteria1(iIndex)
ElseIf arrOperator(iIndex) <> 0 Then
.AutoFilter.Range.AutoFilter Field:=iIndex, _
Criteria1:=arrCriteria1(iIndex), _
Operator:=arrOperator(iIndex), _
Criteria2:=arrCriteria2(iIndex)
End If
End If
Next
End If
End With
Fehler:
With Err
Select Case .Number
Case 0 'alles OK
Case 1004 'Fehlercode
Resume Next
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbNewLine & .Description
End Select
End With
End Sub
- Schließe den VBA-Editor und führe das Makro aus.
Häufige Fehler und Lösungen
-
Fehler: PasteSpecial-Methode kann bei dem Range-Objekt nicht angewendet werden
Stelle sicher, dass der Autofilter deaktiviert ist, bevor Du versuchst, eine neue Zeile einzufügen. Der oben bereitgestellte Code löst dieses Problem, indem er die Filtereinstellungen vorübergehend aufhebt.
-
Excel Filter wird nicht auf alle Zeilen angewendet
Vergewissere Dich, dass der Autofilter korrekt eingerichtet ist. Manchmal kann es helfen, den Filter zu löschen und neu zu setzen.
Alternative Methoden
Eine weitere Möglichkeit, um die Daten zu filtern und in eine neue Tabelle einzufügen, ist die Verwendung der Funktion „Daten filtern und in neue Tabelle einfügen“. Hierbei kannst Du die gewünschten Daten auswählen und sie in ein neues Arbeitsblatt übertragen. Gehe dazu wie folgt vor:
- Setze den Autofilter auf die gewünschten Daten.
- Kopiere die gefilterten Daten.
- Füge sie in ein neues Arbeitsblatt ein.
Praktische Beispiele
Angenommen, Du hast eine Liste von Versuchsträgern mit verschiedenen Prüfständen. Um einen neuen Versuchsträger in die Liste einzufügen, während ein Autofilter aktiv ist, kannst Du den oben genannten VBA-Code verwenden. Dieser sorgt dafür, dass die neue Zeile korrekt eingefügt wird, ohne die Filtereinstellungen zu stören.
Tipps für Profis
- Halte deine Excel-Version auf dem neuesten Stand, um von den neuesten Funktionen und Fehlerbehebungen zu profitieren.
- Nutze benutzerdefinierte Funktionen in VBA, um wiederkehrende Aufgaben zu automatisieren.
- Wenn Du häufig mit Filtern arbeitest, erwäge die Nutzung von benutzerdefinierten Ansichten, um verschiedene Filtereinstellungen schnell zu speichern und abzurufen.
FAQ: Häufige Fragen
1. Wie kann ich eine neue Zeile einfügen, ohne den Autofilter zu deaktivieren?
Du kannst den bereitgestellten VBA-Code verwenden, der die Filtereinstellungen merkt und sie nach dem Einfügen der neuen Zeile wiederherstellt.
2. Was passiert mit den Daten, wenn ich den Autofilter aufhebe?
Wenn Du den Autofilter aufhebst, werden alle Daten angezeigt. Daher ist es wichtig, die Filtereinstellungen nach dem Einfügen der neuen Zeile wieder zu setzen.