Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1856to1860
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

Excel Datei Splitten

Excel Datei Splitten
19.11.2021 14:28:46
Mente
Hallo liebes Forum
Vielleicht könnt' ihr mir da weiterhelfen. Ich stehe vor dem Problem, dass ich eine Excel Datei in verschiedene Excel Dateien splitten muss. Nun habe ich bereits VBA Varianten gesehen, die eine einzelne Tabelle in verschiedene Dateien splittet; was ich jedoch suche, ist, dass alle Tabellen in allen Dateien vorhanden sind, jedoch nur mit den relevanten Daten.
Konkret: In der Tabelle "Data" befinden sich Bestelldaten pro Kunde. Nun soll für jeder Kunde eine eigene Datei erstellt werden, wobei die Tabellen (Data, Client, Summary) beinhalten soll. In der Tabelle Client sollte dann die Kundeninfo, z.B. A (Zelle B4) drin stehen und in der Tabelle Daten sollten dann nur die Daten des Kunden A stehen. Auch die Summary Tabelle mit den Berechnungen sollte so bestehen bleiben.
Beispiel:
https://www.herber.de/bbs/user/149253.xlsx
Ist dies machbar?
Vielen Dank
Mente

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

Betreff
Datum
Anwender
Anzeige
AW: Excel Datei Splitten
19.11.2021 15:20:37
Yal
Hallo Mente,
Versuche mit folgendem:

Dim KundeColl As Collection
Dim QWb As Workbook 'Quell-WB
Dim ZWb As Workbook 'Ziel_WB
Const Pfad = "C:\temp\"
Sub Dupliziere()
Dim E
Set QWb = Workbooks("149253.xlsx")
Kundeliste_aufbauen
For Each E In KundeColl
QWb.SaveCopyAs Pfad & "Kopie_" & E & ".xlsx"
Set ZWb = Workbooks.Open(Pfad & "Kopie_" & E & ".xlsx")
AndereKunden_löschen E
ZWb.Close True
Next
End Sub
Private Sub Kundeliste_aufbauen()
Dim Z
Set KundeColl = New Collection
On Error Resume Next
With QWb.Worksheets("Data")
For Each Z In .Range(.Range("A6"), .Range("A99999").End(xlUp)).Cells
KundeColl.Add Trim(Z.Value), LCase(Trim(Z.Value))
Next
End With
End Sub
Private Sub AndereKunden_löschen(ByVal Kunde As String)
Dim i
Application.EnableEvents = False
With ZWb.Worksheets("Data")
For i = .Range("A99999").End(xlUp).Row To 6 Step -1
If LCase(Trim(.Cells(i, 1).Value))  LCase(Trim(Kunde)) Then
.Cells(i, 1).EntireRow.Delete Shift:=xlUp
End If
Next
End With
Application.EnableEvents = True
End Sub
VG
Yal
Anzeige
AW: Excel Datei Splitten
20.11.2021 17:54:49
Mente
Hallo Yal
Perfekt. Vielen herzlichen Dank für die super rasche Hilfe!
Danke
Gruss
AW: Excel Datei Splitten
22.11.2021 15:34:05
Mente
Hallo Yal
Danke für den Code. Nun habe ich diesen auf meinem 'produktiven' File getestet und festgestellt dass das Processing extrem lange dauert. Die Gründe sind sicherlich die Anzahl Zeilen 3000+ mit ca. 30 Spalten. Jedoch habe ich im Ganzen nur ca. fixe 10 Kunden die ich auch vorab definieren könnte (nicht dynamisch).
Meine Frage, gibt es einen "performanteren" Code. Um die Files manuell zu erstellen, verwende ich die Autofilter-Funktion (nicht benötigte Kunden selektionieren, Auswahl löschen, Autofilter clear).
Vielen herzlichen Dank.
Grüsse
Mente
Anzeige
AW: Excel Datei Splitten
22.11.2021 19:49:09
Yal
Hallo Mente,
in der Tat habe ich eine einfache Methode, die die Zeit als nicht kritisch beachte, weil ich es als ausreichend gesehen hatte, solang Du die Aufgabe nur einmal am Tag machst (und weil es nur so in ein paar Minuten und 30 Zeilen Code zu schaffen war).
Man sollte vor der Pause oder Feierabend anstossen. Oder im Hintergrund laufen lassen.
Wenn Du das mehrmals am Tag und auf die gesamte Datenmenge, ist nicht die Performance der Code in Frage zu stellen, sondern warum es unbedingt notwendig dieses Prozess immer wieder zu machen (ich habe schon bei der einmaligen Lauf mich zurückgehalten, dass diese Daten-Behandlung nicht besonders glücklich ist).
Seit ein paar Jahren (ca. 70) gibt es den Konzept Model-View-Controller. Es besagt, dass Datenhaltung (Model), deren Präsentation (View) und deren Verarbeitung (Controller) voneinander getrennt sein sollten. Also alle Daten zusammen (was eigentlich dein Startzustand ist). Anzeige durch eine Abfrage (=Filter, bzw Controller) und das Ergebnis mit einem "Schön-Macher" dartstellen (View).
Die Trennung der Daten in kleine Einheiten um innerhalb diesen Einheiten den vollständigen Erscheinungsbild zu gewähren, widerspricht komplett diese Idee.
Die MVC-Denkweise ist die Grundlage für Datenbank, wo Strukturierung notwendig ist. Excel erlaubt zwar vieles, aber mit Excel sollte man trotzdem strukturiert arbeiten.
VG
Yal
Anzeige
AW: Excel Datei Splitten
23.11.2021 19:18:12
Mente
Hallo Yal
Vielen Dank für die Erläuterungen. Ich stimme zu, jedoch müssen auch die Anforderungen der Empfänger berücksichtigt werden. Das macht die Sache nicht immer einfach.
Vg
Mente
AW: Excel Datei Splitten
22.11.2021 15:39:29
Mente
Liebes Forum
Schon im Voraus vielen Dank.
Gruss
Mente

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige