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

Teilergebnisse einer Tabelle mit VBA kopieren

Teilergebnisse einer Tabelle mit VBA kopieren
13.12.2003 20:50:21
Norbert
Hallo liebe Forumleute!

Kann mir bitte jemand weiterhelfen??!!
Es geht um folgendes:

Nepomuk vom Forum hat mir bereits viel geholfen. Aber in seinem Skript funktioniert eine Anweisung nicht so wie ich mir das vorgestellt habe.

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.
ACHTUNG: Wie bereits oben erwähnt erstelle ich nach der Autofilterung auch noch TEILERGEBNISSE (Daten/Teilergebnisse/Unter Verwendung von Summe)!!
Mit Nepomuks Skript erspare ich mir die Schleife zum Zeilenzählen und ich sollte den TEILERGEBNIS-GEFILTERTEN Bereich in ein neues Arbeitsblatt kopieren können, der nach der Filterung UND DER TEILERGEBINS-Erstellung übrig bleibt. Die Teilergebnis-Funktion in Excel liefert mir aber in Spalte F gewisse Teilergebnisse:
Z.B. steht dort: AB Ergebnis, weil AB eine Filtermöglichkeit ist; x-Zeilen darunter
CD Ergebnis, weil CD auch eine weitere Filtermöglichkeit ist usw.
Genau so will ich das auch, aber mit der Kopieranweisung in Nepomuks Skript werden nur die Zeilen bis zum ersten Teilergebnis (z.B. AB Ergebnis) markiert (selektiert).
Wie kann ich nun ALLE sichtbaren Zeilen (eben nach der Teilergebnis-Erstellung und Filterung) MIT DEN TEILERGEBNIS-Texten (wie z.B. AB Ergebnis) selektieren?

Mein Taberllenblatt nach der Filterung und der Erstellung der Teilergebnisse sieht z.B. so aus:

https://www.herber.de/bbs/user/2449.xls

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.

Nepomuks Skript:

Public

Sub test()
Dim varArray As Variant
Application.ScreenUpdating = False
Range("A1").Select
Range(Range("A2:C2"), Selection.End(xlDown)).Copy  ---   Hier werden “zuwenig” Zeilen selektiert!!
Workbooks.Add
Range("A1").PasteSpecial xlPasteAll
varArray = ActiveSheet.UsedRange
ActiveWorkbook.Close False
Application.ScreenUpdating = True
End Sub


Danke im Voraus

LG
Norbert

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

Betreff
Datum
Anwender
Anzeige
AW: Teilergebnisse einer Tabelle mit VBA kopieren
13.12.2003 21:11:32
Nepumuk
Hallo Norbert,

ändere die Zeile:

Range(Range("A2:C2"), Selection.End(xlDown)).Copy

so:

Range(Range("A2:I65536"), Selection.End(xlUp)).Copy

Gruß
Nepumuk
P.S. Schreibt sich wirklich so.
Super!!
15.12.2003 13:37:37
Norbert
Hi Nepomuk!

Ich danke dir wirklich sehr. Der Tipp war sehr gut und nach kleinen Anpassungen in meinem Skript läuft alles super!!
Das war eine einfache und zugleich geniale Idee von dir mit dem "temporären" Kopieren der teilergebnisgefilterten Daten in ein neues Workbook.
Ich kopiere alle Daten in eine neue Mappe, suche dort die für mich relevanten Werte mit einer for-Schleife aus und kopiere diese in mein File.
Die temporär erstellte Mappe schließe ich wieder ohne zu speichern.

Ich danke dir nochmals

LG
Norbert
Anzeige

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige