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

Variant-Variable für Range u. Autofilter

Variant-Variable für Range u. Autofilter
29.06.2021 18:22:58
Ben
Hallo,
ich bin gerade über eine Macke oder ein Feature ( ;) ) von Excel VBA gestolpert. Für Statistikeinträge lese ich den ausgefüllten Bereich der Tabelle mit xlUp und xlToLeft für die Suche in eine Variant-Variable ein. Nun wird mit der Statistiktabelle auch gearbeitet und dafür wird die Autofilter-Funktion genutzt. Jetzt habe ich festgestellt, daß bei gesetztem Filter die Tabelle nur bis zur letzten im Filter angezeigten Zeile in die Variable eingelesen wird, was zu Problemen führt. Momentan lösche ich jetzt den Autofilter vorher und setze ihn nachher neu. Dabei geht natürlich die letzte Einstellung verloren.
Gibt es eine Möglichkeit, auch bei gefilterter Tabelle den gesamten verwendeten Bereich einzulesen?
Danke schonmal
Ben

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

Betreff
Datum
Anwender
Anzeige
was spricht gegen UsedRange ? owt
29.06.2021 19:18:13
ralf_b
AW: was spricht gegen UsedRange ? owt
29.06.2021 20:51:09
Ben
Die Statistik selbst ist leider nur ein Teil, der als Bereich benannt ist. Ich habe es mit Intersect und UsedRange oder mit dem benannten Bereich direkt versucht, aber da kommen dann alle leeren Zeilen mit Formatierungen (einige tausend) mit - ist das nicht unnötiger Ballast? Das belegt doch unnötig Speicher - macht hier etwa 150-200MB aus.
AW: Variant-Variable für Range u. Autofilter
29.06.2021 21:26:14
Rudi
Hallo,
schon mit Range("A1").CurrentRegion versucht?
Gruß
Rudi
AW: Variant-Variable für Range u. Autofilter
30.06.2021 07:46:57
Daniel
Hi
Die letzte Einstellung des Autofilters kann man in einer benutzerdefinierten Ansicht speichern und so wieder herstellen, wenn man temporär die Filtereinstellungen löschen will.
Oder probier mal mit ActiveSheet.Autofilter.Range den Zellbereich des Autofilters zu referenzieren.
Formatierungen in leeren Zellen unterhalb der Daten solltest du vermeiden.
Die brauchen Speicherplatz und belasten das System.
Gruß Daniel
Anzeige
AW: Variant-Variable für Range u. Autofilter
30.06.2021 21:03:55
Ben
Hallo Rudi,
.CurrentRegion funzt, wenn ich dafür sorge, daß um die Tabelle herum mindestens eine leere Spalte/Zeile ist, was natürlich erstmal nicht der Fall war...
Die Randspalte(n) (davor/dahinter) und die Randzeile (über dem Kopf) versehe ich mit Schreibschutz, damit da nicht irgendein Dabbs da was reinschreibt ;)
Für die, die wegen eines ähnlichen Problems hier landen:

Dim cRng
cRng = Workbooks(BBook).Names("_I.Statistik").RefersToRange.Cells(1, 1).CurrentRegion
Vielen Dank!
Die anderen Vorschläge schaue ich mir auch noch an - man lernt ja immer was dazu...
Anzeige
Zu früh gefreut, jedenfalls so halb
30.06.2021 21:10:07
Ben
Zu früh gefreut, für gesperrte Blätter funktioniert es nicht, die Sperre muß vorher also aufgehoben werden...
Es geht noch einfacher - Intersect
01.07.2021 20:06:13
Ben
ich überschneide einfach die CurrentRegion mit dem benannten Bereich - dann brauche ich keinen leeren Rand mehr

Dim cRng
cRng = Intersect( _
Workbooks(BBook).Names("_I.Statistik").RefersToRange.Cells(1, 1).CurrentRegion, _
Workbooks(BBook).Names("_I.Statistik").RefersToRange)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige