Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1492to1496
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

Prüfen ob Filteregebnis leer ist

Prüfen ob Filteregebnis leer ist
26.05.2016 10:23:45
Markus
Hallo liebe Community,
ich lasse über eine Datei mehrere Filter laufen und kopiere dann einige Spalten der gefilterten Datensätze in eine separate Datei. Nun möchte ich die Geschwindigkeit des Makros mit einer If Funktionen erhöhen die prüft, ob nach Anwendung des Filters überhaupt noch Datensätze zum kopieren übrig bleiben.
Hier ein Auschnitt des bisherigen Makros
Set rng = Sheets("Tabelle1").Range("1:1").Find("Versendedatum")
Range(rng.Address).Select
ActiveCell.Offset(1, 0).Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ergebnis").Select
usw...
Meine Ansatz war die Funktion so zu erweitern:
Set rng = Sheets("Tabelle1").Range("1:1").Find("Versendedatum")
Range(rng.Address).Select
ActiveCell.Offset(1, 0).Select
If ActiveCell.Select "" Then
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Ergebnis").Select
usw....
Else
End If
Leider prüft Excel dann nicht ob der erste Datensatz nach dem Filter leer ist, sondern springt in die Zeile 2 von der Gesamttabelle die garantiert nicht leer ist.
Also läuft meine Prüfung ins leere.
Habt ihr eine Idee?
Beste Grüße
Markus

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfen ob Filteregebnis leer ist
26.05.2016 10:47:04
Nepumuk
Hallo,
ein Beispiel:
Public Sub AutofilterLeer()
    With ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)
        If .Areas.Count = 1 Then
            If .Areas(1).Rows.Count = 1 Then
                MsgBox "Autofilter ist leer"
            End If
        End If
    End With
End Sub

Gruß
Nepumuk

Anzeige
AW: Prüfen ob Filteregebnis leer ist
26.05.2016 10:48:16
Luschi
Hallo Marus,
so mache ich das:

If Sheets("Tabelle1").AutoFilter.Range.SpecialCells(xlCellTypeVisible).Rows.Count = 1 Then
MsgBox "Achtung: Anzahl der gefilterten Datensäte = 0", vbSystemModal + 16
Exit Sub
End If
Denn wenn alle Zeilen weggefiltert wurden, bleibt nur noch die Überschriftenzeile des Filters übrig (= 1)
Gruß von Luschi
aus klein-Paris

so leider nicht.
26.05.2016 12:13:35
Daniel
Hi Luschi
diese Lösung ist nicht korrekt und wird immer einen leeren Filter melden, sobald die zweite Zeile ausgeblendet ist, auch wenn danach weiter Zeilen wieder sichtbar sind.
das liegt daran, dass .Rows.Count nur die Zeilen der ersten Area, dh des ersten lückenlos zusammenhängenden Zellblocks der Range zählt. Bei einer Filterung kann aber der sichbare Bereich aus mehren Areas bestehen, sie hierzu auch die Lösung von Nepumuk.
oder du zählst die Zellen in der ersten Spalte, den Cells.Count zählt alle Zellen des Bereich, unabhängig von den Areas:
Sheets("Tabelle1").AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Cells.Count = 1
Gruß Daniel

Anzeige
AW: so leider nicht.
26.05.2016 13:08:41
Luschi
Hallo Daniel,
hast Recht, habe sofort meine Datensammlung korrigiert.
Danke sagt Luschi
aus klein-Paris

AW: Prüfen ob Filteregebnis leer ist
26.05.2016 12:06:26
Daniel
Hi
Noch ne Variante:
If Sheets("Tabelle1").AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Cells.Count =  _
1 Then
MsgBox "Achtung: Anzahl der gefilterten Datensäte = 0", vbSystemModal + 16
Exit Sub
End If
Gruß Daniel

AW: Prüfen ob Filteregebnis leer ist
26.05.2016 12:06:27
Daniel
Hi
Noch ne Variante:
If Sheets("Tabelle1").AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Cells.Count =  _
1 Then
MsgBox "Achtung: Anzahl der gefilterten Datensäte = 0", vbSystemModal + 16
Exit Sub
End If
Gruß Daniel

Anzeige
AW: Prüfen ob Filteregebnis leer ist
26.05.2016 15:11:59
Markus
vielen Dank allen, hat prima funktioniert!!!
Beste Grüße
Markus
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge