Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
1352to1356
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

Filterinhalt speichen unter in

Filterinhalt speichen unter in
19.03.2014 22:26:15
joe
Hallo Forum,
ich würde gerne aus einer Vielzahl von Zeilen in einer Schleife alle identischen Zeilen in einer eigenen Datei unter dem Namen des Zellinhaltes speichern.
das nachstehende Beispiel müsste 3 Dateien mit jeweils der Überschrift ergeben:
Überschrift1 - Überschrift2 - Überschrift3
19.03. - 500 - ST
19.03. - 400 - ST
15.03. - 200 - ST
10.03. - 100 - ST
10.03. - 2 - ST
10.03. - 11 - ST
1. alle Zeilen sortieren nach Spalte A
2. alle identischen Zeilen A2 bis zum ersten Unterschied in der Spalte A in einer eigenen Datei im aktuellem Verzeichnis unter dem Dateinamen der Zelle A2+"Datum" speichern
3. step 2 wiederholen, bis kein Eintrag mehr vorhanden ist.
Kann mir bitte jemand eine VBA-Hilfestellung für die Schleife geben, die ich dann mit meinen rudimentären VBA-Kenntnissen ausbauen kann? Wie bringe ich den Inhalt in eine neue Datei?

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

Betreff
Datum
Anwender
Anzeige
AW: Filterinhalt speichen unter in
22.03.2014 10:57:20
Oberschlumpf
Hi joe
zeig doch mal ne Bsp-Datei mit Bsp-Daten.
Ciao
Thorsten

AW: Filterinhalt speichen unter in
23.03.2014 00:22:10
joe
Hallo Thorsten,
vielen Dank für Deine Rückmeldung.
Ich habe inzwischen über einen Filter die Zeilen in ein neues Tabellenblatt kopiert, gespeichert und dann gelöscht und den Filter erneut gesetzt und wiederhole dies, bis das Tabellenblatt mit 900.000 Zeilen leer ist.
Mir klingeln die Ohren, wenn das gelesen wird, das ist sicher nicht schön und schon gar nicht perfomant. Ich habe aber nun "VBA-Blut" geleckt und will dran bleiben.
Wenn Du Zeit und Lust hast, schau doch mal über das coding. Müsste ich das nicht über ein array lösen, dann könnte die Wiederholung der Schritte im array erfolgen?
Vielen Dank für Deine Mühe,
Gruß, Joe.
+++++
https://www.herber.de/bbs/user/89805.xlsx
++++
Sub Files_erzeugen()
Range("A2").Select
ActiveSheet.Range("$A$1:$H$3800").AutoFilter Field:=1, Criteria1:=ActiveCell.Value
' der geringe wert soll helfen ,die rechenoperation für das filtern zu verkürzen, zuvor  _
sind die zeilensortiert.
Range("A2").Select
ActiveSheet.Range("A2:H" & ActiveSheet.UsedRange.Rows.Count). _
SpecialCells(xlCellTypeVisible).Copy
' neue Datei erzeugen:
Workbooks.Add
Range("A2").Select
ActiveSheet.Paste
Range("A1").Select
ActiveCell.FormulaR1C1 = "Data1"
Range("B1").Select
ActiveCell.FormulaR1C1 = "Data2"
Range("C1").Select
ActiveCell.FormulaR1C1 = "Data3"
Range("D1").Select
ActiveCell.FormulaR1C1 = "Data3"
Range("E1").Select
ActiveCell.FormulaR1C1 = "Data4"
Range("F1").Select
ActiveCell.FormulaR1C1 = "Data5"
Range("G1").Select
ActiveCell.FormulaR1C1 = "Data6"
Range("H1").Select
ActiveCell.FormulaR1C1 = "Data7"
Cells.Select
Cells.EntireColumn.AutoFit
Range("B2").Select
ActiveWindow.FreezePanes = True
Range("A2").Select
' Tabellenblatt und Tabelle 2 und 3 ohne Rückfrage löschen:
Application.DisplayAlerts = False
Sheets("Tabelle2").Delete
Sheets("Tabelle3").Delete
Application.DisplayAlerts = True
' und jezt das neue Workbbok schliessen
ActiveWorkbook.SaveAs Filename:="H:\zz\TEST\Data1_" & Cells(2, 1) & ".xlsx", FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False
ActiveWorkbook.Close
' wieder zurück zur alten Datei, den Autofilter entfernen, neu setzen....
ActiveSheet.Range("A2:H" & ActiveSheet.UsedRange.Rows.Count). _
SpecialCells(xlCellTypeVisible).Select
Application.CutCopyMode = False
Selection.EntireRow.Delete
Selection.AutoFilter
Range("A2").Select
'so und jetzt lassen das ganze so lange laufen, bis der Prozessor heiss wird
'* Loop
Call START
End Sub
++++++

Anzeige
AW: Filterinhalt speichen unter in
23.03.2014 01:27:00
Oberschlumpf
Hi Joe
Ich bin im Lesen "fremder" Codes nicht so gut.
Daher hab ich meinen selbst geschrieben.
hier die Datei
https://www.herber.de/bbs/user/89806.xls
Entweder musst du die Datei in dem Verzeichnis speichern, in dem später auch die vielen Einzeldateien gespeichert sind.
(im Bsp werden 6 Dateien erzeugt)
Oder du kannst die Datei mit dem Code in ein beliebiges Verzeichnis speichern.
Auf jeden Fall befinden sich die neuen Einzeldateien immer in dem Verzeichnis, in dem sich auch die Codedatei befindet.
Mein Code macht...
...zuerst werden alle Wertezeilen nach Spalte A sortiert
...dann startet eine For/Next-Schleife
...es wird der nächste, andere Wert in A gesucht
...wenn gefunden, werden alle darüber liegenden Werte-Zeilen in einer neuen Datei eingefügt
...die Datei erhält den Namen, der in Zelle A1 steht + Datum
...die Datei wird gespeichert + geschlossen
...nun wiederholt sich die Suche nach dem nächsten, anderen Wert in Spalte A
...die nächste neue Datei erhält den Namen aus Zelle B1, wird gespeichert + geschlossen
...usw usw
So hab ich jedenfalls deinen Erstbeitrag verstanden.
Mein Code verwendet keinen Autofilter.
Hilfts?
Ciao
Thorsten

Anzeige
AW: Filterinhalt speichen unter in
23.03.2014 09:06:01
joe
Hallo Thorsten,
das ist klasse und läuft schneller als mein sequentielles Löschen der Zeilen.
Vielen herzlichen Dank für die Hilfe!
viele Grüße, Joe.

freut mich, dass ich helfen konnte...owT
23.03.2014 09:50:20
Oberschlumpf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige