Tabelle aufteilen

Bild

Betrifft: Tabelle aufteilen von: Tinu
Geschrieben am: 06.04.2005 15:36:12

Liebe Excel Spezialisten

Die Datensätze eines Excel Sheets möchte ich sortiert nach der ersten Spalte auf andere Arbeitsblätter aufteilen. Im beiliegenden Beispiel wäre also Sheet 1 die gesamte Datensammlung. Auf Arbeitsblatt a sollen nun nur diejenigen Datensätze erscheinen, welche auf Sheet 1 ein "a" in Spalte a haben und so weiter. Die Daten sollen aber bei Änderungen auf Sheet 1 automatisch nachgeführt werden. Im "echten" Leben sind es übrigens etwa 100 Arbeitsblätter.

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

Besten Dank für Euere Hilfe
Gruss
Tinu

Bild


Betrifft: AW: Tabelle aufteilen von: Frank Domke
Geschrieben am: 06.04.2005 17:33:07

Hallo Tinu,
den Ansatz verstehe ich nicht? Redundante Datenhaltung ist ungesundt! Ich würde vorschlagen, das Du mal in der Tabelle Sheet1 den Autofilter einschaltest. Dann hast Du vielleicht schon das, was Du brauchst!?
Viel Erfolg
Frank.


Bild


Betrifft: AW: Tabelle aufteilen von: Tinu
Geschrieben am: 06.04.2005 18:25:34

Hallo Frank,

besten Dank für Deine Antwort. Der Grund für diese Aufteilung ist, dass das eigentliche Datenblatt (Blatt1) zu gross ist für eine Übersicht. Die Blätter a,b,c,etc dienen der Information zu einem bestimmten Sachgebiet und es gibt darauf auch kein Schreibrecht. Datenredundanz ist also keine Gefahr! Zu Blatt1 sollen nicht alle User Zugriff haben, daher hilft mir der Filter nichts.

Gruss
Tinu


Bild


Betrifft: AW: Tabelle aufteilen von: Beni
Geschrieben am: 06.04.2005 21:57:09

Hallo Tinu,
kopiere den ersten Teil in das Modul von Sheet1, mit rechte Maustaste auf Tabellenregister / Code anzeigen. Dieser Code ist für die Uebertragung bei Aenderung.
Der zweite Teil in ein Standartmodul, dieser Code überträgt die ganze Tabelle, jeweils in die entspechende Tabelle.
Gruss Beni

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet
Dim i, lz, ls As Integer
i = Target.Row
ws = Cells(i, 1)
With Sheets(ws)
lz = .Cells(65536, 1).End(xlUp).Row + 1
ls = Cells(i, 256).End(xlToLeft).Column
Range(Cells(i, 1), Cells(i, ls)).Copy .Cells(lz, 1)
End With
End Sub



Sub Tinu()
Dim ws As Worksheet
Dim i, lz, ls As Integer
i = Target.Row
For i = 1 To Cells(65536, 1).End(xlUp).Row
ws = Cells(i, 1)
With Sheets(ws)
lz = .Cells(65536, 1).End(xlUp).Row + 1
ls = Cells(i, 256).End(xlToLeft).Column
Range(Cells(i, 1), Cells(i, ls)).Copy .Cells(lz, 1)
End With
Next i
End Sub


Bild


Betrifft: AW: Tabelle aufteilen von: Tinu
Geschrieben am: 06.04.2005 22:24:00

Hallo Beni

Herzlichen Dank für deine Antwort. Ich hatte die Hoffnung schon aufgegeben ;-)
Leider bekomme ich nun aber einen Laufzeitfehler und zwar bleibt mir der Code bei "ws = Cells(i, 1)" stehen. Was mache ich falsch?

Grüsse aus der Schweiz
Tinu


Bild


Betrifft: AW: Tabelle aufteilen von: Beni
Geschrieben am: 07.04.2005 10:41:54

Hallo Timu,
ich habe die Variablen erst nach dem Test deklariert, ws ist ein String nicht Integer.
Der Gruss bleibt in der Schweiz.
Beni

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As String
Dim i, lz, ls As Integer
i = Target.Row
ws = Cells(i, 1)
With Sheets(ws)
lz = .Cells(65536, 1).End(xlUp).Row + 1
ls = Cells(i, 256).End(xlToLeft).Column
Range(Cells(i, 1), Cells(i, ls)).Copy .Cells(lz, 1)
End With
End Sub



Bild


Betrifft: AW: Tabelle aufteilen von: Tinu
Geschrieben am: 07.04.2005 20:30:27

Super Beni,

jetzt klappt es perfekt!

vielen herzlichen Dank
Tinu


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Tabelle aufteilen"