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

Autofilterung-Danach angezeigte Zeilen zählen

Autofilterung-Danach angezeigte Zeilen zählen
12.12.2003 12:26:18
Norbert
Hallo liebe Forumleute!

Ich benötige bitte wieder mal eure Hilfe, um ein Skript zu verbessern.
Es geht um folgendes:

In einem VBA-Skipt sortiere und berechne (Daten/Teilergebnisse/Unter Verwendung von Summe) ich Werte in einem Tabellenblatt, in dem sich viele Daten befinden und immer wieder Daten hinzukommen. Dann verwende ich noch den Autofilter (in Zeile 1) zum Filtern.
Dann lasse ich einen „Zeilenzähler“ laufen, der die Zeilen bis zur ersten Leerzeile in Spalte F zählt.
Danach lasse ich eine Schleife (von 2 bis „Zeilenzähler“) laufen, in der ich in der Spalte I und M nach gewissen Einträgen suche.
Das funktioniert so recht gut, aber Excel-VBA zählt nach dem Erstellen der Teilergebnisse und nach der Autofilterung ALLE Zeilen durch; so bekomme ich einen wertmäßig sehr großen „Zeilenzähler“, obwohl am Tabellenblatt vielleicht durch den Autofilter nur mehr wenige Zeilen überbleiben.
Das Problem ist nun klar: Wenn ich also mal eine Zeilenzahl von z.B. 2000 habe und dann Autofiltere, und danach nur mehr vielleicht 60 Zeilen sichtbar sind, weil genau diese mich interessieren, werden trotzdem 2000 Zeilen gezählt und die for-Schleife wird 2000 mal durchlaufen! Das dauert dann immer länger.

Gibt es nun eine Möglichkeit, wie ich nach einer mehrfachen Autofilterung, die tatsächlich sichtbaren Zeilen (Anzahl unbekannt) zählen lassen kann, weil die andern ja offensichtlich nur ausgeblendet werden?

Unten ein Teil des Skripts zum besseren Verständnis.
Ich bitte auch um genaue (verständliche) Skriptangabe, weil ich mich in VBA noch nicht gut auskenne. Die Skriptteile unten sind großteils auch von Forumteilnehmern, die mir sehr weitergeholfen haben.

Danke im Voraus,
LG Norbert

' Zeilenzaehler z in teilergebnisgefilterter Tabelle laufen lassen
Sheets("ET").Activate
Sheets("ET").Range("F2").Select

z = 1

While IsEmpty(ActiveCell.Value) = False
ActiveCell.Offset(1, 0).Select
z = z + 1
Wend

' Relevante Werte aus Spalte I und Spalte M in Variablen ablegen
For m = 2 To z
Select Case Sheets("ET").Cells(m, 6)

Case "0A Ergebnis"
OA = Sheets("ET").Range("I" & m & "").Value
OA_V = Sheets("ET").Range("M" & m & "").Value

Usw.

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

Betreff
Datum
Anwender
Anzeige
AW: Autofilterung-Danach angezeigte Zeilen zählen
12.12.2003 16:51:25
Nepumuk
Hallo Norbert,
in einer gefilterten Liste geht das nicht, denn da müsste dem Programm ja vorher schon bekannt sein, welche Zeile ausgeblendet ist. Du könntest aber mit einem Array arbeiten. Dazu müssen die gefilterten Daten in das Array. Das kannst du wie folgt bewerkstelligen:

Option Explicit
Public Sub test()
Dim varArray As Variant
Application.ScreenUpdating = False
Range("A1").Select
Range(Range("A2:C2"), Selection.End(xlDown)).Copy
Workbooks.Add
Range("A1").PasteSpecial xlPasteAll
varArray = ActiveSheet.UsedRange
ActiveWorkbook.Close False
Application.ScreenUpdating = True
End Sub



Code eingefügt mit: Excel Code Jeanie

Vor der Anweisung: End Sub, sind die Daten aus der gefilterten Liste in varArray z.B.
1.Zeile aus 1.Spalte = varArray(1, 1) 1.Zeile aus 2.Spalte = varArray(1, 2) ..........
2.Zeile aus 1.Spalte = varArray(2, 1) ................
usw.

Die Anzahl der Zeilen liefert dir Ubound(varArray). Das durchsuchen des Arrays geht auch wesentlich schneller, als das der Tabelle.

Gruß
Nepumuk
Anzeige
Danke dir!!
13.12.2003 19:18:25
Norbert
Hallo Nepomuk!

Ich danke dir recht schön. Das werde ich gleich versuchen. Wenn es gut geht werde ich dir das zurückschreiben.
Also, schönes Wochenende noch und danke nochmals.

LG
Norbert

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige