Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1732to1736
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

Tabelle gefiltert auf neue Blätter kopieren

Tabelle gefiltert auf neue Blätter kopieren
15.01.2020 09:58:59
Ralf
Hallo ins Land!
Ich habe folgendes Problem, was ich gerne lösen möchte. Ohne VBA scheine ich das nicht realisieren zu können. Und zwar habe ich eine Gesamttabelle, in der in einer Spalte (in meinem Fall F) die Bezeichnungen von verschiedensten Organisationseinheiten aufgeführt sind. Zu jeder Organisationseinheit gibt es multiple Zeilen. Ich möchte nun für jede Organisationseinheit ein separates Tabellenblatt erstellen (Name gerne wie OrgaEinheit), in dem die zugehörigen Zeilen aus der Gesamttabelle hineinkopiert werden. Dabei sollen die neuen Tabellenblätter quasi dieselbe Struktur, wie die Gesamttabelle haben.
Kann man das in VBA lösen?

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Ja...
15.01.2020 10:04:37
Torsten
wenn du uns eine Beispieldatei einstellst.
Gruss Torsten
AW: Ja...
15.01.2020 11:04:44
Nepumuk
Hallo Ralf,
ich bin davon ausgegangen dass sich in Zeile 1 Überschriften befinden und die Daten in Zeile 2 beginnen.
Option Explicit
Public Sub Verteilen()
Dim avntValues As Variant, vntItem As Variant
Dim objDictionary As Object, objWorksheet As Worksheet
With Worksheets("Tabelle1") 'Tabellenname anpassen !!!
If .FilterMode Then Call .ShowAllData
avntValues = .Range(.Cells(2, 6), .Cells(.Rows.Count, 6).End(xlUp)).Value2
Set objDictionary = CreateObject(Class:="Scripting.Dictionary")
For Each vntItem In avntValues
objDictionary.Item(Key:=vntItem) = vbNullString
Next
avntValues = objDictionary.Keys
Set objDictionary = Nothing
For Each vntItem In avntValues
Set objWorksheet = Worksheets.Add(After:=Worksheets(Worksheets.Count))
objWorksheet.Name = vntItem
Call .Rows(1).AutoFilter(Field:=6, Criteria1:=vntItem)
Call .AutoFilter.Range.Copy(Destination:=objWorksheet.Cells(1, 1))
Next
Set objWorksheet = Nothing
Call .ShowAllData
End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Ja...
15.01.2020 11:13:08
Ralf
Hammer!
Du bist mein Held. Das klappt super. VIELEN DANK!!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige