Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wert in intelligenter Tabelle löschen

Forumthread: Wert in intelligenter Tabelle löschen

Wert in intelligenter Tabelle löschen
01.10.2021 22:16:12
whats
Hallo Experten,
in einer intelligenten Tabelle filtere ich in zwei Spalten nach Werten um diese Zeilen dann zu löschen.
Bei der einen Spalte filter ich nach Buchstaben und lösche diese dann. Das funktioniert soweit gut.
Bei der anderen Spalte filter ich nach dem Zahlenwert "0". Bei meinem Quelltext hängt es auch davon ab, in welchen Zahlenformat der Wert formatiert ist.
Z.B. findet der Autofilter den Wert 0 nicht wenn in der Spalte mit zwei Nachkommastellen "0,00" formatiert ist. Weiterhin dauert dieser Löschvorgang ziemlich lange (10.000 Zeilen).
Anbei der Quelltext, den ich bis dato verwende. Habt ihr einen Verbesserungsvorschlag um vielleicht den Zahlenwert unabhängig von der Formatierung zu filtern und den Vorgang zu beschleunigen?
Besten Dank vorab und Gruss,
whats up

Sub Update()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim LastRow As Integer
Dim tbl As ListObject
Dim a As Integer
Set tbl = ActiveSheet.ListObjects(1)
If tbl.ListRows.Count > 0 Then
If Application.WorksheetFunction.CountIf(tbl.ListColumns(24).DataBodyRange, "A") + Application.WorksheetFunction.CountIf(tbl.ListColumns(24).DataBodyRange, "Z") > 0 Then
tbl.Range.AutoFilter Field:=24, Criteria1:=Array("A", "Z"), Operator:=xlFilterValues
tbl.DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
tbl.Range.AutoFilter Field:=24
End If
If Application.WorksheetFunction.CountIf(tbl.ListColumns(12).DataBodyRange, "0.00") > 0 Then
tbl.Range.AutoFilter Field:=12, Criteria1:=Array("0.00"), Operator:=xlFilterValues
tbl.DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
tbl.Range.AutoFilter Field:=12
End If
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Anbei der Link zur Datei:
https://www.herber.de/bbs/user/148402.xlsm
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wert in intelligenter Tabelle löschen
02.10.2021 10:55:09
Luschi
Hallo @,
wenn Du so filterst:

ActiveSheet.ListObjects("Download_0001_Presta").Range.AutoFilter Field:=1, _
Criteria1:=">=0", Operator:=xlAnd, Criteria2:="
dann werden die '0,00'-Werte auch angezeigt.
Gruß von Luschi
aus klein-Paris
AW: Wert in intelligenter Tabelle löschen
03.10.2021 15:10:24
whats
Hallo Luschi,
danke für den HInweis. Das funktioniert.
Bester Gruss,
whats up
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Wert in intelligenter Tabelle löschen


Schritt-für-Schritt-Anleitung

Um Werte in einer intelligenten Tabelle zu löschen, befolge diese Schritte:

  1. Öffne die Excel-Datei mit der intelligenten Tabelle.

  2. Aktiviere das Visual Basic for Applications (VBA) Editor:

    • Drücke ALT + F11.
  3. Füge das folgende VBA-Skript ein:

    Sub Update()
       Application.ScreenUpdating = False
       Application.DisplayAlerts = False
       Dim LastRow As Integer
       Dim tbl As ListObject
       Set tbl = ActiveSheet.ListObjects(1)
    
       If tbl.ListRows.Count > 0 Then
           ' Filtere nach Buchstaben
           If Application.WorksheetFunction.CountIf(tbl.ListColumns(24).DataBodyRange, "A") + Application.WorksheetFunction.CountIf(tbl.ListColumns(24).DataBodyRange, "Z") > 0 Then
               tbl.Range.AutoFilter Field:=24, Criteria1:=Array("A", "Z"), Operator:=xlFilterValues
               tbl.DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
               tbl.Range.AutoFilter Field:=24
           End If
    
           ' Filtere nach Zahlenwert "0"
           If Application.WorksheetFunction.CountIf(tbl.ListColumns(12).DataBodyRange, "0.00") > 0 Then
               tbl.Range.AutoFilter Field:=12, Criteria1:=Array("0.00"), Operator:=xlFilterValues
               tbl.DataBodyRange.SpecialCells(xlCellTypeVisible).Delete
               tbl.Range.AutoFilter Field:=12
           End If
       End If
    
       Application.DisplayAlerts = True
       Application.ScreenUpdating = True
    End Sub
  4. Schließe den VBA-Editor und kehre zur Excel-Oberfläche zurück.

  5. Führe das Skript aus:

    • Drücke F5 oder wähle im Menü "Ausführen".

Damit kannst Du Werte in deiner intelligenten Tabelle schnell und effektiv löschen.


Häufige Fehler und Lösungen

  • Problem: Die Filterung nach "0" funktioniert nicht.

    • Lösung: Achte darauf, dass die Werte in der Spalte tatsächlich als "0" formatiert sind. Verwende zur Sicherheit ">=0" als Kriterium im Filter.
  • Problem: Lange Ladezeiten bei großen Datenmengen.

    • Lösung: Deaktiviere ScreenUpdating und DisplayAlerts, um die Performance zu verbessern, wie im obigen VBA-Skript gezeigt.

Alternative Methoden

Falls Du die intelligente Tabelle zurücksetzen oder entfernen möchtest, sind hier einige Alternativen:

  1. Intelligente Tabelle zurücksetzen: Klicke mit der rechten Maustaste auf die Tabelle und wähle „Tabelle zurücksetzen“.
  2. Intelligente Tabelle entfernen: Wähle die Tabelle aus und gehe zu „Tabellentools“ -> „Entwurf“ -> „Tabelle in den Bereich konvertieren“.

Praktische Beispiele

Wenn Du Werte in einer intelligenten Tabelle löschen möchtest, kannst Du auch verschiedene Filterkriterien verwenden. Hier ein Beispiel:

tbl.Range.AutoFilter Field:=1, Criteria1:=">=0", Operator:=xlAnd, Criteria2:="<>"

Dies zeigt alle Werte größer oder gleich 0 und schließt leere Zellen aus.


Tipps für Profis

  • Verwende dynamische Bereiche: Statt die Tabelle manuell auszuwählen, nutze Set tbl = ActiveSheet.ListObjects(1) um die erste Tabelle im Arbeitsblatt dynamisch zu wählen.
  • Makros zur Automatisierung: Du kannst diese Skripte in Makros speichern, um sie bei Bedarf schnell auszuführen.

FAQ: Häufige Fragen

1. Wie kann ich eine intelligente Tabelle aufheben?
Um eine intelligente Tabelle aufzuheben, gehe zu „Tabellentools“ -> „Entwurf“ und wähle „Tabelle in den Bereich konvertieren“.

2. Was passiert, wenn ich die intelligente Tabelle entferne?
Die Daten bleiben erhalten, aber die spezielle Formatierung und die Filterfunktionen der intelligenten Tabelle werden entfernt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige