Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
912to916
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
912to916
912to916
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Filterergebnis per VBA löschen

Filterergebnis per VBA löschen
10.10.2007 12:58:09
Melanie
Hallo Profis,
ich scheitere mal wieder an einer, wie ich hoffe einfachen VBA Frage. Wie kann ich das Filterergebnis des AutoFilters per VBA löschen? Ich filtere eine Tabelle auf einen bestimmten Wert und will dann alle Zeilen, die im Filter ausgegeben werden löschen. Wichtig ist, dass die Überschrift ja stehen bleiben muss.
Vielleicht habt ihr ne Idee? Im Voraus schon mal Danke!
Grüße, Melanie

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Filterergebnis per VBA löschen
10.10.2007 13:04:02
Andre´
Hallo Melanie
probier mal über Extras Makro aufzeichnen.
MFG Andre

Hilft nicht...
10.10.2007 13:05:28
Melanie
Schon gemacht, aber in der Aufzeichnung werden dann fixe Werte eingetragen, ich brauche ja aber den variablen Filterergebnisbereich, weil der jedes aml anders sein kann... Hilft mir also leider nicht.

AW: Filterergebnis per VBA löschen
10.10.2007 13:11:00
Rolf
If Worksheets("Tabelle1").AutoFilterMode Then
Range("a1").Select
Selection.AutoFilter
End If
Gruss
Rolf

AW: Filterergebnis per VBA löschen
10.10.2007 13:15:49
Melanie
Ähem, ich bin mir jetzt nicht sicher, was da passieren soll, oder ich blicks ned.
Also, in meiner Tabelle wird in der Spalte B nach leer gefiltert, diese Zeilen sollen dann gelöscht werden. Wie mach ich das?

Anzeige
AW: Filterergebnis per VBA löschen
10.10.2007 13:24:53
Rolf
Ach so, löschen hab ich überlesen...
Ich schau mal weiter, ob ich was finde, was dir hilft.
Du willst also, dass die leeren Zeilen danach so weg sind, das die Tabelle an einem Stück ist?

AW: Filterergebnis per VBA löschen
10.10.2007 13:26:46
Melanie
Genau was ich brauch, ja!

AW: Filterergebnis per VBA löschen
10.10.2007 13:35:05
Rolf
PS: ein kleines x an die letzte Zelenposition stellen, damit det Makro weiss, wo er aufzuhören hat!
Gruss Rolf

AW: Filterergebnis per VBA löschen
10.10.2007 13:30:00
Andre´
Hallo Melanie,
ich hab mal ein Bsp. angehängt.
https://www.herber.de/bbs/user/46662.xls
Lass dir über den Filter die Werte anzeigen die du löschen willst und dann drücke den Button.
MFG Andre

Anzeige
AW: Filterergebnis per VBA löschen
10.10.2007 13:32:04
Rolf
oder so...

Sub test()
Range("B1").Select
ActiveCell.Offset(1, 0).Select
Do Until ActiveCell = "x"
If ActiveCell = "" Then
ActiveCell.Rows.Select
Selection.Delete Shift:=xlUp
Else:
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub


AW: Filterergebnis per VBA löschen
10.10.2007 14:00:52
Melanie
So richtig funzt das alles nid. Ich denke ich werde mit diesem Makro arbeiten.

Sub Makro1()
Rows("2:65536").Select
Selection.Delete Shift:=xlUp
End Sub


Danke für eure Hilfe!

AW: Filterergebnis per VBA löschen
10.10.2007 14:50:26
Walburga
Hallo Melanie
Verständnisfrage: du willst alle Zeilen löschen, die in Spalte B leer sind?
Gruss Walburga

Anzeige
AW: Filterergebnis per VBA löschen
10.10.2007 14:56:00
Melanie
Genauer gesagt, alle Zeilen die im Filterergebnis über Spalte B leer sind.
Sprich in der Tabelle gibt es Zeilen, die in Spalte B keinen Eintrag haben und diese Zeilen sind zu löschen.

AW: Filterergebnis per VBA löschen
10.10.2007 15:09:59
Walburga
Hi Melanie
dann nimm dies:

Sub NullZeilen_löschen() 'wenn Null in selektierter Spalte, ganze Zeile delete
Dim i As Integer
For i = Cells(Cells.Rows.count, Selection.Column).End(xlUp).Row To 2 Step -1
On Error Resume Next
If Cells(i, Selection.Column) = 0 Then Rows(i).Delete
Next
End Sub


oder ohne Selection, nur für Spalte B


Sub NullZeilen_löschen() ' Spalte B
Dim i As Integer
For i = Cells(Cells.Rows.count, 2).End(xlUp).Row To 2 Step -1
On Error Resume Next
If Cells(i, 2) = 0 Then Rows(i).Delete
Next
End Sub


Gruss Walburga

Anzeige
Autofilterergebnis per VBA VARIABEL löschen
10.10.2007 15:01:44
NoNet
Hallo Melanie,
zum Löschen des Autofilter-Ergebnisses biete ich Dir dieses Makro an :
Sub AutofilterergebnisLoeschen()
    'Löscht das Ergebnis des aktuellen Autofilters
    'also die aktuell angezeigten Zeilen !
    'Bereich der per Autofilter gefilterten Liste ist variabel !
    '10.10.2007, NoNet - www.excelei.de
    If ActiveSheet.AutoFilterMode Then
        If ActiveSheet.FilterMode Then
            If MsgBox("Sollen die Zeilen des aktuellen " & vbLf & _
            "Autofilterergebnisses komplett gelöscht werden ?", _
                vbQuestion + vbYesNo, "Zeilen Löschen") = vbYes Then
            With ActiveSheet.AutoFilter.Range.Offset(1)
                .Resize(ActiveSheet.AutoFilter.Range.Rows.Count - 1).EntireRow.Delete _
                    shift:=xlUp
            End With
        End If
    Else
        MsgBox "Es wurden keine Filterkriterien angegeben !"
    End If
    Else
    MsgBox "Es ist kein Autofilter aktiviert !"
    End If
End Sub
Vorteile/Features :
- es wird überprüft, ob ein Autofilter im aktuellen Blatt gesetzt ist
- es wird überprüft, ob Filterkriterien angegeben wurde, falls nicht, wird auch nichts gelöscht
- es wird erst nach Bestätigung einer MsgBox gelöscht
- der Bereich, in dem sich die gefilterte Liste befindet spielt keine Rolle, daher sehr variabel
Viel Spaß, NoNet

Anzeige
AW: Autofilterergebnis per VBA VARIABEL löschen
10.10.2007 15:08:30
Melanie
Hut ab! Funzt perefekt! Und wie schalte ich bei dem ganzen die Abfrage aus?

Danke!
10.10.2007 15:15:41
Melanie
Habs selbst gefunden. Vielen Dank!!

Wie ? - Möchtest Du meinen "Service" nicht ;-) ?
10.10.2007 15:15:43
NoNet
Hallo Melanie,
eigentlich hatte ich diese Abfrage zur Sicherheit absichtlich mit eingebaut ;-)
Aber wenn Du darauf verzichten kannst, kannst Du diese IF-Abfrage-Codezeile (und das End If) einfach auskommentieren oder löschen :
Sub AutofilterergebnisLoeschenOhneAbfrage()
    'Löscht das Ergebnis des aktuellen Autofilters
    'also die aktuell angezeigten Zeilen !
    'Bereich der per Autofilter gefilterten Liste ist variabel !
    '10.10.2007, NoNet - www.excelei.de
    If ActiveSheet.AutoFilterMode Then
        If ActiveSheet.FilterMode Then
            'If MsgBox("Sollen die Zeilen des aktuellen " & vbLf & _
            "Autofilterergebnisses komplett gelöscht werden ?", _
                vbQuestion + vbYesNo, "Zeilen Löschen") = vbYes Then

            With ActiveSheet.AutoFilter.Range.Offset(1)
                .Resize(ActiveSheet.AutoFilter.Range.Rows.Count - 1).EntireRow.Delete _
                    shift:=xlUp
            End With
            'End If
        Else
            MsgBox "Es wurden keine Filterkriterien angegeben !"
        End If
    Else
        MsgBox "Es ist kein Autofilter aktiviert !"
    End If
End Sub
Gruß, NoNet

Anzeige
AW: Filterergebnis per VBA löschen
10.10.2007 22:35:22
Daniel
Hi Melanie
ich gehe mal davon aus, daß deine Tabelle ganz normal in Zelle A1 beginnt.
Die Überschriften stehen in Zeile 1 , die Werte stehen dann ab Zeile 2.
Unterhalb der Datentabelle befinden sich keine weiten Werte mehr.
Die Datentabelle enthält keine Leerzeilen und Leerspalten.
wenn das so gegeben ist, dann kannst du deine gefilterten Werte mit folgendem Makorcode löschen:

Range("A1").currentregion.offset(1,0).specialcells(xlcelltypevisible).entirerow.delete


zur erläuterung:
.currentregion erweitert die Selektion auf die ganze Tabelle
.offset(1,0) verschiebt die Selektion um eins nach unten (Überschrift ist nicht mehr selektiert)
.specialcells(xlcelltypevisible) selektiert nur die sichtbaren Zellen
.entirerow.delete löscht dann von dem was noch selektiert ist, die ganze Zeile
kleiner Tip noch, bei grösseren Datenmengen ist es sinnvoll, die Tabelle vor dem Filtern noch so zu sortieren, daß die zu löschenden Zellen direkt untereinander stehen. Das erhöht die Verarbeitungsgeschwindigkeit ungemein.
Gruß, Daniel

Anzeige

55 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige