Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: autofilter: Anzahl zeilen

autofilter: Anzahl zeilen
Jochen
Hallo zusammen
ich habe folgendes Problem: Ich möchte per VBA Zeilen kopieren, dei ich vorher per Autofilter selektiert habe. Wenn in der Auswahl aber kein Elemnt enthalten ist, dann kopiert er nur Müll. Daher möchte ich die Anzahl Zeilen ermitteln und das kopieren überspringen, wenn die zeilenzahl = 0 ist.
Leider klappt das so nciht, kann mir einer sagen warum?
Rows("20:100").AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="x"
Selection.AutoFilter Field:=2, Criteria1:="y"
Rows("20:100").Select
Z_Zahl = Selection.Cells.SpecialCells(xlCellTypeConstants).Rows.Count
Danke
Jochen
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: autofilter: Anzahl zeilen
25.09.2009 15:52:12
Jochen
Sorry, hatte gerade gemerkt, daß ich einen Copy - Paste fehler drin habe.
Die Zeile lautet bei mir
Z_Zahl = Selection.SpecialCells(xlCellTypeVisible).Rows.Count
(funktioniert aber trotzdem nicht)
AW: autofilter: Anzahl zeilen
25.09.2009 16:24:52
Kawensmann
Hallo,
versuch’s mal so:
Dim r As Range
Dim i As Integer
Set r = Rows("20:100")
i = Intersect(r.SpecialCells(xlVisible), r.Columns(1)).Count - 1
MsgBox i & " Zeilen"
Gruß
Kawensmann
Anzeige
AW: autofilter: Anzahl zeilen
25.09.2009 16:37:50
Gerd
Hallo Jochen
oder so.
Sub test()
Rows("20:100").AutoFilter
Rows("20:100").AutoFilter Field:=1, Criteria1:="x", Field:=2, Criteria1:="y"
If Cells(100, 1).End(xlUp).Row = 20 Then
MsgBox "nicht kopieren"
Else
MsgBox "kopieren"
Autofilter.Range.Copy (Tabelle2.cells(1, 1)
End If
End Sub

Anzeige
DANKE !!! o.T.
28.09.2009 10:35:50
Jochen
---
AW: autofilter: Anzahl zeilen
25.09.2009 17:12:13
Daniel
HI
du arbeitest mit Selection, das ist nicht gut, vorallem hier für die Problemstellung, da wir nicht wissen welche Zellen du selektiert hast.
außerdem funktioniert die Rows.Count-Methode nicht bei unterbrochenen Zellbeichen, so wie sie durch das Ausblenden entstehen können, Excel liefert hier keine zuverlässige Zahl.
mit dieser Mehtode könntest du das allerdings lösen:
Sub test()
With ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)
If .Areas.Count = 1 And .Rows.Count = 1 Then
MsgBox "keine Zellen zum kopien vorhanden"
Else
MsgBox "es gibt Zeilen zum kopieren"
End If
End With
End Sub
Gruß, Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Anzahl gefilterter Zeilen in Excel ermitteln


Schritt-für-Schritt-Anleitung

Um die Anzahl der gefilterten Zeilen in Excel zu ermitteln, kannst du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne das Excel-Dokument, in dem du die Anzahl gefilterter Zeilen ermitteln möchtest.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (dein Dokument)" > Einfügen > Modul.

  4. Kopiere und füge den folgenden Code in das Modul ein:

    Sub AnzahlGefilterteZeilen()
       Dim r As Range
       Dim i As Integer
       Set r = Rows("20:100") ' Definiere den Bereich, den du filtern möchtest
       i = Intersect(r.SpecialCells(xlVisible), r.Columns(1)).Count - 1
       MsgBox i & " Zeilen sind gefiltert."
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Führe das Makro aus: ALT + F8, wähle "AnzahlGefilterteZeilen" und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004"

    • Ursache: Der ausgewählte Bereich enthält keine sichtbaren Zellen.
    • Lösung: Überprüfe, ob der Autofilter aktiv ist und visible Zellen vorhanden sind.
  • Fehler: Falsche Anzahl angezeigter Zeilen

    • Ursache: Verwendung der Rows.Count Methode, die nicht bei unterbrochenen Zellbereichen funktioniert.
    • Lösung: Verwende SpecialCells(xlVisible) für eine präzise Zählung.

Alternative Methoden

Wenn du keine VBA nutzen möchtest, kannst du auch die Excel-Funktionalitäten verwenden:

  1. Setze den Autofilter auf deine Daten.
  2. Am unteren Bildschirmrand zeigt Excel die Anzahl der gefilterten Zeilen an. Suche nach der Formulierung wie "x von y Einträgen".

Diese Methode ist allerdings nicht so präzise wie die VBA-Lösungen, besonders wenn du die Anzahl in einer Zelle darstellen möchtest.


Praktische Beispiele

Hier sind einige praktische Beispiele zur Verwendung von VBA, um die Anzahl gefilterter Zeilen zu ermitteln:

  1. Zählen der gefilterten Zeilen in einem bestimmten Bereich:

    Sub ZeilenZaehlen()
       Dim Z_Zahl As Long
       Rows("20:100").AutoFilter Field:=1, Criteria1:="x"
       Z_Zahl = Rows("20:100").SpecialCells(xlCellTypeVisible).Count - 1
       MsgBox Z_Zahl & " gefilterte Zeilen gefunden."
    End Sub
  2. Überprüfen, ob gefilterte Zeilen vorhanden sind:

    Sub CheckFilteredRows()
       With ActiveSheet.AutoFilter.Range.SpecialCells(xlCellTypeVisible)
           If .Areas.Count = 1 And .Rows.Count = 1 Then
               MsgBox "Keine Zellen zum Kopieren vorhanden."
           Else
               MsgBox "Es gibt gefilterte Zeilen."
           End If
       End With
    End Sub

Tipps für Profis

  • Nutze Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind.
  • Verwende Application.ScreenUpdating = False, um das Flackern des Bildschirms beim Ausführen von Makros zu vermeiden.
  • Wenn du häufig mit gefilterten Daten arbeitest, speichere deine Makros in einer personalisierten Arbeitsmappe (PERSONAL.XLSB), um sie jederzeit nutzen zu können.

FAQ: Häufige Fragen

1. Wie kann ich die Anzahl gefilterter Zeilen in einer bestimmten Spalte ermitteln?
Du kannst die Intersect-Methode verwenden, um nur sichtbare Zellen in einer bestimmten Spalte zu zählen.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der VBA-Code sollte in allen gängigen Excel-Versionen funktionieren, solange die Autofilter-Funktion verfügbar ist.

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