Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Listen ausgeben

Forumthread: Listen ausgeben

Listen ausgeben
05.05.2008 15:37:14
Jürgen
Hallo zusammen,
ich habe folgendes Problem:
Ich habe eine Liste mit Kundendaten von mehreren Filialen. In der Spalte A habe ich immer die zuständige Filiale mit Ihrer Nummer. Nun müsste ich die Liste je Filiale in ein neues Excel Tabllenblatt bringen. Generell denke ich, könnte ich das mit dem Spezial Filter lösen. Nur leider sind das insgesamt 18.000 Datensätze auf gut 60 Filialen! Das würd für mich bedeuten, ich muss den Spezial Filter 60 mal händisch einstellen.
Geht das auch schneller ?
Vielen Dank für eure Hilfe.

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listen ausgeben
05.05.2008 15:55:00
ptonka
Hallo Jürgen,
Dein Anliegen kommt nicht ganz so verständlich rüber.
Willst Du die Gesamtliste (18.000 Datensätze) auf 60 Tabellenblätter (je Filiale eines) aufteilen?
Soll eine Verbindung bestehen bleiben? D.h. wenn in der Gesamtliste Änderungen gemacht werden, sollen die direkt übernommen werden?
Ich denke, wenn dem so ist, wäre ein Makro angebracht, dass die Aufteilung vornimmt.
Beschreib mal etwas detaillierter Dein Anliegen, dann bekommst Du den entsprechenden Code.
Gruß,
Ptonka

Anzeige
AW: Listen ausgeben
05.05.2008 16:10:52
Jürgen
Hallo ptonka,
vielen Dank schon mal für die Hilfe und sorry für die ungenaue Darstellung.
Ich will es genau so machen wie du gemeint hast. Ich will pro Filiale ein Tabelleblatt haben, das die passenden Datensätze enthält.
Z. B. Alle Datensätze die der Filiale 3000 zugeordnet sind sollen in das Tabellenblatt Filiale 3000 und alle Datensätze der Filiale 3001 in das Tabelleblatt Filiale 3001. Da dies nur eine einmalige Auswertung ist, muss keine dauerhafte Verbindung bestehen bleiben.
Hintergrund ist der, ich will die aussortierten Kunden den jeweiligen Filialen zukommen lassen ohne das eine Filiale Kunden einsehen kann, die nicht zu Ihr gehören!
Vorstellen könnte ich mir auch, das pro Filiale eine komplett neue Exel Datei entsteht, wenn das villeicht einfacher zu regeln ist.
Nochmal vielen Dank.

Anzeige
AW: Listen ausgeben
05.05.2008 16:39:00
ptonka
Hallo Jürgen,
nutze folgenden Code:

Sub sortieren()
Anzahl = [A65536].End(xlUp).Row
For i = 2 To Anzahl
Sheets("Gesamtliste").Select
Filiale = Cells(i, 1).Value
Filiale2 = Cells(i + 1, 1).Value
j = j + 1
Select Case Filiale
Case Is  Filiale2
ErsteZeile = i - j + 1
'Neues Blatt
Sheets.Add
NeuesBlatt = ActiveSheet.Name
Sheets(NeuesBlatt).Select
Sheets(NeuesBlatt).Name = Filiale
'Werte kopieren
Sheets("Gesamtliste").Select
Range(Cells(ErsteZeile, 1), Cells(i, 256)).Select
Selection.Copy
Sheets(Filiale).Select
ActiveSheet.Paste
Range("A1").Select
Sheets("Gesamtliste").Select
Application.CutCopyMode = False
Range("A1").Select
j = 0
End Select
Next i
End Sub


Nenne nur Dein Blatt mit der Gesmtliste "Gesamtliste"
Gruß,
Ptonka

Anzeige
AW: Listen ausgeben
05.05.2008 17:01:13
Jürgen
Geht leider nicht.
Es kommt ein Laufzeit Fehler. '9' Index ausserhalb des gültigen Bereichs.
Was immmer das heist.
Was kann ich dir noch geben, damit du mir besser helfen kannst?
Kann ich dir irgendwie eine Musterdatei hochladen?

AW: Listen ausgeben
06.05.2008 00:47:36
Daniel
Hallo
hier mal 2 Beispielcodes, einmal für Aufteilen in neue Sheets und einmal Aufteilen in neue Workbooks (mit Speichern)
da beim Erstellen der Listen die Ausgangsdaten gelöscht werden, musst du zum Rumspielen immer wieder die Tabelle von der Original in die Ausgangsliste koperen:
https://www.herber.de/bbs/user/52120.xls
und der Code dazu

Sub aufteilen_Sheet()
Dim shQ As Worksheet
Dim shZ As Worksheet
Dim strFi As String
Dim ze1 As Long
Const spFi As Long = 1
Set shQ = Sheets("Ausgangsliste")
shQ.Cells(1, 1).CurrentRegion.Sort key1:=shQ.Cells(2, spFi)
With shQ
Do Until .Cells(2, spFi).Value = ""
strFi = .Cells(2, spFi).Value
Set shZ = Sheets.Add(after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
shZ.Name = strFi
ze1 = .Columns(spFi).Find(what:=strFi, after:=.Cells(Rows.Count, spFi), searchdirection:= _
xlPrevious).Row
Range(.Cells(1, 1), .Cells(ze1, 1)).EntireRow.Copy Destination:=shZ.Cells(1, 1)
Range(.Cells(2, 1), .Cells(ze1, 1)).EntireRow.Delete
Loop
End With
End Sub



Sub aufteilen_Workbook()
Dim shQ As Worksheet
Dim wbZ As Workbook
Dim shZ As Worksheet
Dim strFi As String
Dim ze1 As Long
Const spFi As Long = 1
Set shQ = ThisWorkbook.Sheets("Ausgangsliste")
shQ.Cells(1, 1).CurrentRegion.Sort key1:=shQ.Cells(2, spFi)
With shQ
Do Until .Cells(2, spFi).Value = ""
strFi = .Cells(2, spFi).Value
Set wbZ = Workbooks.Add
Set shZ = wbZ.Sheets(1)
shZ.Name = strFi
ze1 = .Columns(spFi).Find(what:=strFi, after:=.Cells(Rows.Count, spFi), searchdirection:= _
xlPrevious).Row
Range(.Cells(1, 1), .Cells(ze1, 1)).EntireRow.Copy Destination:=shZ.Cells(1, 1)
Range(.Cells(2, 1), .Cells(ze1, 1)).EntireRow.Delete
wbZ.SaveAs ThisWorkbook.Path & "\" & strFi & ".xls"
wbZ.Close
Loop
End With
End Sub


Gruß, Daniel

Anzeige
AW: Listen ausgeben
06.05.2008 07:36:00
Ptonka
Hallo Jürgen,
wenn Du eine Musterdatei hättest, wäre alles natürlich viel einfacher.
Gruß,
Ptonka

AW: Listen ausgeben
09.05.2008 08:45:00
Jürgen
Hallo Daniel,
hab leider erst heute die Zeit gefunden, deinen Code auszuprobieren.
Vielen Dank!!!!
Es geht!!!!
Ein kleiner Schönheitsfehler passiert, wenn ich meine Daten reinkopiere, dann nimmt er nicht die Zeile 1 als Überschrift, sondern immer die Zeile 2. Aber nur wenn ich meine Daten reinkopiere! Keine Ahnung warum!
Aber damit kann ich leben!
Vielen Dank nochmal!

Anzeige
AW: Listen ausgeben
09.05.2008 18:40:57
Daniel
Hi
um da was sagen zu können, müsste man deine Daten kennen.
das einzige was mir einfallen würde, wäre, daß die sortierung die Überschriftenzeile nicht als solche erkennt und mitsortiert.
ändermal diese Zeile so ab:
s

hQ.Cells(1, 1).CurrentRegion.Sort key1:=shQ.Cells(2, spFi), header:=xlyes


vielleicht gehts dann.
Gruß, Daniel

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige