Anzeige
Archiv - Navigation
1604to1608
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Inhalte löschen außer Daten im Filter

Inhalte löschen außer Daten im Filter
29.01.2018 11:02:43
Norbert
Hallo,
es gibt ja verschiedene Anweisungen, um Daten auf einem Arbeitsblatt in Excel per VBA zu löschen, beispielsweise CLEAR, DELETE etc.
Besteht die Möglichkeit, per VBA-Anweisung nur die Inhalte zu löschen, welche nach einer Filtersetzung noch sichtbar sind? Die Daten, welche sich "im Filter" befinden sollen nicht gelöscht werden, sondern nach dem löschen der nach der Filterung übrig gebliebenen Daten wieder eingefügt werden.
Vielen Dank.
Beste Grüße
Norbert

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Doppelt. o.w.T.
29.01.2018 11:06:50
Werner
AW: Inhalte löschen außer Daten im Filter
29.01.2018 11:37:33
fcs
Hallo Norbert,
bei Filtern per Autofiter kann man per VBA wie folgt die sichtbaren Zellen löschen.
Gruß
Franz
Sub Filter_sichtbar_loeschen()
Dim wks As Worksheet
Dim Zei_1 As Long, Zei_L As Long
Dim Spa_1 As Long, Spa_L As Long
Set wks = ActiveSheet
If MsgBox("Sollen die sichtbaren Zeilen des Autofilterbreichs gelöscht werden?", _
vbQuestion + vbOKCancel, "Gefiltere Löschen") = vbCancel Then Exit Sub
With wks
If .AutoFilterMode = True Then
If .FilterMode = True Then
With .AutoFilter.Range
Zei_1 = .Row + 1
Zei_L = .Row + .Rows.Count - 1
Spa_1 = .Column
Spa_L = .Column + .Columns.Count - 1
End With
'sichtbare Werte im Autofilterbereich löschen
With .Range(.Cells(Zei_1, Spa_1), .Cells(Zei_L, Spa_L))
.SpecialCells(xlCellTypeVisible).Delete shift:=xlShiftUp
End With
'alle Daten anzeigen
.ShowAllData
End If
End If
End With
End Sub

Anzeige
AW: Inhalte löschen außer Daten im Filter
29.01.2018 11:45:24
Norbert
Hallo Franz,
vielen Dank für die Mühe.
Merkwürdigerweise löscht Deine Anweisung meine Daten nicht, nachdem ich in der MsgBox OK ausgewählt habe.
Kannst Du Dir das erklären?
Beste Grüße
Norbert
AW: Inhalte löschen außer Daten im Filter
29.01.2018 14:17:31
fcs
Hallo Norbert,
das Makro funktioniert innerhalb eins "normalen" Autofilterbereiches in einem Tabellenblatt.
Wenn die Daten innerhalb des Tabellenblatts in einer Tabelle/Liste stehen, dann muss das Makro anders aussehen.
Ich hab das Makro mal entsprechend erweitert.
Gruß
Franz
Sub Filter_sichtbar_loeschen()
Dim WKS As Worksheet, objList As ListObject
Dim Zei_1 As Long, Zei_L As Long
Dim Spa_1 As Long, Spa_L As Long
Set WKS = ActiveSheet
If MsgBox("Sollen die sichtbaren Zeilen des Autofilterbreichs gelöscht werden?", _
vbQuestion + vbOKCancel, "Gefiltere Löschen") = vbCancel Then Exit Sub
With WKS
If .ListObjects.Count > 0 Then
Set objList = .ListObjects(1)
With objList
If .ShowAutoFilter = True Then
If .AutoFilter.FilterMode = True Then
.DataBodyRange.SpecialCells(xlCellTypeVisible).ClearContents
.AutoFilter.ShowAllData
For Zei_1 = .DataBodyRange.Rows.Count To 1 Step -1
If Application.WorksheetFunction.CountA(.ListRows(Zei_1).Range) = 0 Then
.ListRows(Zei_1).Delete
End If
Next
Else
MsgBox "in der Tabelle ist kein Filter gesetzt!"
End If
Else
MsgBox "in der Tabelle ist der Autofilter nicht aktiv!"
End If
End With
Else
If .AutoFilterMode = True Then
If .FilterMode = True Then
With .AutoFilter.Range
Zei_1 = .Row + 1
Zei_L = .Row + .Rows.Count - 1
Spa_1 = .Column
Spa_L = .Column + .Columns.Count - 1
End With
'sichtbare Werte im Autofilterbereich löschen
With .Range(.Cells(Zei_1, Spa_1), .Cells(Zei_L, Spa_L))
.SpecialCells(xlCellTypeVisible).Delete shift:=xlShiftUp
End With
'alle Daten anzeigen
.ShowAllData
Else
MsgBox "Im aktiven Tabellenblatt ist kein Filter gesetzt", _
vbOKOnly, "Gefiltere Löschen"
End If
Else
MsgBox "Im aktiven Tabellenblatt ist der Autofilter nicht aktiv", _
vbOKOnly, "Gefiltere Löschen"
End If
End If
End With
End Sub

Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige