Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1672to1676
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

Mit Autofilte nur gefilterte Zellenwerte auslesen

Mit Autofilte nur gefilterte Zellenwerte auslesen
05.02.2019 13:04:06
Anna
Hallo zusammen,
zurzeit versuche ich Werte aus Spalten auszulesen bzw. die Häufigkeit von Werten darin zu ermitteln. Dabei filtere ich eine Tabelle und möchte anschließend aus dem Filterergebnis herauslesen
wie häufig in Spalte 31 (AE) der Wert Nein steht und wie häufig der Wert Ja vorkommt. Das ganze aus dem gefilterten Ergebnis.
Nur leider habe ich keine Ahnung, wie ich nur die gefilterten Werte auslesen kann.
Bisher habe ich folgendes (hierbei wird aber auch auf die verdeckten Zeilen gegangen)
Hat jmd eine Idee? Bin für jede Hilfe dankbar
Sub testFiltern()
lz = Worksheets("Vorlage").Cells(Rows.Count, 1).End(xlUp).Row
For Each aktzelle In Sheets("Vorlage").Range("A4:A" & lz)
FO = Left(aktzelle.Value, 5)
FA = Right(aktzelle.Value, 5)
If Not IsEmpty(Cells(aktzelle.Row, 5)) Then
With Worksheets("Tabelle1")
.Rows("1:1").AutoFilter
.Range("$A$1:$AG$144378").AutoFilter Field:=14, Criteria1:= _
FO
.Range("$A$1:$AG$144378").AutoFilter Field:=16, Criteria1:= _
FA
lzDaten = Worksheets("Tabelle1").Cells(Rows.Count, 14).End(xlUp).Row ' _
Abfrage nach letzter Zeile von gefilterten
'Gehe durch Spalte 31 und Zähle Häufigkeit
For Each zelle In .Range("AE2: AE" & lzDaten)
On Error Resume Next
MsgBox zelle.Row        'Test um zu prüfen ob nur gefilterte  _
angezeigt werden
'                            .ShowAllData    'Zeige wieder alle Daten
Next zelle
.Rows("1:1").AutoFilter
End With
End If
Next aktzelle
End Sub


6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit Autofilte nur gefilterte Zellenwerte auslesen
05.02.2019 13:25:41
Piet
Hallo Anna
wenn du gefilterte Werte auslesen willst, um sie woanders zu speichern, brauchst du keinen Autofilter! - Werte direkt im Makro aus!!
Unten mal ein Demo Programm, als gedankliche Anregung. Bei deinem Code blicke ich noch nicht so ganz durch von wo nach wo was kopiert werden soll. Eine einfache Ja/Nein Prüfung braucht keinen Autofilter!
Vielleicht hift dir das Demo Makro weiter...
mfg Piet
Sub Demo()
'durchsuche Quelle nach "Ja/Nein"
For j = 1 To lz
If Cells(j, 14) = "Ja" Then
'hier was kopieren, in Zieltabelle schreiben
End If
If Cells(j, 16) = "Nein" Then
'hier was kopieren, in Zieltabelle schreiben
End If
Next j
End Sub

Anzeige
AW: Mit Autofilte nur gefilterte Zellenwerte auslesen
05.02.2019 13:47:28
Anna
Hallo Piet,
vielen Dank für deine Antwort. Ich muss erst filtern, da ich nur vom gefilterten also der Auswertung (die Häufigkeit brauche). Ich filtere nicht nach Ja/Nein.
Inwiefern soll ich direkt im Makro auswerten? Ich dachte mit Autofilter ist es einfacher, meine Datenbasis "vorzufiltern" und danach anschließend die Spalte 31 auszulesen.
Ansonstne müsste ich Spalte 14 durchsuchen wo Wert von "FO" vorkommt und Spalte 16 wo Wert FA vorkommt und anschließend zählen wie oft JA bzw. Nein in der zugehörigen Spalte 31 vorkommt. Habe ich deinen Vorschlag richtig verstanden.
Viele Grüße
Anzeige
AW: Mit Autofilte nur gefilterte Zellenwerte auslesen
05.02.2019 14:31:25
Piet
Hallo Anna
wenn du nur die Anzahl von "Ja/Nein" in Spalten wissen willst dürfte WorksheetFunction Optimal sein.
Zum kopieren in einen anderen Bereich hat der Filter aber den Vorteil das er die ausgeblendeten Zeilen - Nicht mit kopiert!
Bei vielen zu kopierenden Zeilen ist das sicher vorteilhafter.
Wenn du nach dem Filtern die Spalte 31 durchsuchst kann die For Next Schleife die gefilterten Zeilen Nicht erkennen. Da müsstest wieder abfragen ob die Zeile Hidden = unsichtbar ist. Bei sehr vielen Daten ist es ggf. sinnvoller sich den gefilteten Bereich in eine Hilfstabelle zu kopieren, und dort die Spalte 31 zu durchsuchen. Dann hat man nur noch Echte gefilterte Werte im Blatt!
Für 100 Daten lohnt sich das nicht, filtert man aus >10.000 nur 100-500 Zeilen heraus macht sich die Suche in der Laufzeit des Makros bemerkbar. Es ist ein kluges Für und Abwaegen was da bei vielen Daten im konkreten Fall schneller geht.
mfg Piet
Sub JaNein_Zaehlen()
MsgBox WorksheetFunction.CountIf(Columns(14), "Ja")
MsgBox WorksheetFunction.CountIf(Columns(16), "Nein")
End Sub

Anzeige
AW: Mit Autofilte nur gefilterte Zellenwerte auslesen
05.02.2019 14:48:43
Anna
Hallo piet,
vielen Dank für deine Antwort! Die Worksheet Function hab ich noch nicht gekannt - vielen Dank dafür!
Und auch für deine Erklärung und Tipps!
liebe Grüße
AW: Mit Autofilte nur gefilterte Zellenwerte auslesen
05.02.2019 14:27:35
PeterK
Hallo
Probier mal:

For Each zelle In .Range("AE2:AE" & lzDaten).SpecialCells(xlCellTypeVisible)

AW: Mit Autofilte nur gefilterte Zellenwerte auslesen
05.02.2019 14:47:28
Anna
Hallo Peter,
vielen Dank für deine Antwort! Der Zusatz funktioniert!
Liebe Grüße

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige