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

unterschiedl. Sheets füllen auf Grund Beding./Sheets benenne

unterschiedl. Sheets füllen auf Grund Beding./Sheets benenne
26.10.2023 14:55:52
Simon
Hallo zusammen, ich stehe vor einem Problem, vielleicht kann mir jemand helfen..

Ich habe eine Liste, Blatt Input. Dieses Liste enthält tausende Datensätze.
In der Spalte C stehen Werte.

Nun möchte ich alle Zeilen, die in Spalte C den gleichen Wert haben in ein neues Tabellenblatt verschieben und das Tabellenblatt mit dem jeweiligen Wert aus C benennen.

Hat jemand hierzu eine Idee, ich komme damit meinen " beschränkten Excelbordmitteln" nicht mehr weiter.

Eine Musterdatei ist hier.
https://www.herber.de/bbs/user/163833.xlsx

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

Betreff
Datum
Anwender
Anzeige
AW: unterschiedl. Sheets füllen auf Grund Beding./Sheets benenne
26.10.2023 17:33:17
Uduuh
Hallo,
teste mal:
Sub simon()

Dim vntIN, vntTMP, vntOUT(), objA As Object, o, v, i As Long, n As Integer

Set objA = CreateObject("scripting.dictionary")
vntIN = Worksheets("Input").Cells(2, 1).CurrentRegion

For i = 2 To UBound(vntIN)
v = ""
For n = 1 To 3
v = v & "|" & vntIN(i, n)
Next n
objA(vntIN(i, 3)) = objA(vntIN(i, 3)) & "#" & Mid(v, 2)
Next i

For Each o In objA
vntTMP = Split(objA(o), "#")
ReDim vntOUT(1 To UBound(vntTMP), 1 To 3)
For i = 1 To UBound(vntTMP)
v = Split(vntTMP(i), "|")
For n = 0 To 2
vntOUT(i, n + 1) = v(n)
Next
Next
With Worksheets.Add
.Cells(1, 1).Resize(UBound(vntOUT), 3) = vntOUT
.Name = o
End With
Next o

End Sub

Gruß aus'm Pott
Udo
Anzeige
AW: unterschiedl. Sheets füllen auf Grund Beding./Sheets benenne
27.10.2023 09:37:31
Simon
Hallo Udo,

echt krass das funktioniert echt super. Das hätte ich niemals alleine hinbekommen. Vielen Dank!!!!

Kannst Du mir vielleicht noch zwei Fragen beantworten:

1. Wo muss ich genau anpacken, wenn ich anstatt von (aktuell) 3 Spalten, jetzt 15 Spalten habe und Spalte 15 immer noch mein Blattname sein soll?
2. Wenn mein Blattname aus Spalte 15 noch den Zusatz Out (vorangestellt) tragen soll?

Danke vorab

Simon
AW: unterschiedl. Sheets füllen auf Grund Beding./Sheets benenne
27.10.2023 12:54:50
Uduuh
Hallo,
Sub simon()

Dim vntIN, vntTMP, vntOUT(), objA As Object, o, v, i As Long, n As Integer

Set objA = CreateObject("scripting.dictionary")
vntIN = Worksheets("Input").Cells(2, 1).CurrentRegion

For i = 2 To UBound(vntIN)
v = ""
For n = 1 To 15
v = v & "|" & vntIN(i, n)
Next n
objA(vntIN(i, 15)) = objA(vntIN(i, 15)) & "#" & Mid(v, 2)
Next i

For Each o In objA
vntTMP = Split(objA(o), "#")
ReDim vntOUT(1 To UBound(vntTMP), 1 To 15)
For i = 1 To UBound(vntTMP)
v = Split(vntTMP(i), "|")
For n = 0 To 14
vntOUT(i, n + 1) = v(n)
Next
Next

With Worksheets.Add
.Cells(1, 1).Resize(UBound(vntOUT), 15) = vntOUT
.Name = "OUT_" & o
End With
Next o

End Sub

Gruß aus'm Pott
Udo
Anzeige
AW: unterschiedl. Sheets füllen auf Grund Beding./Sheets benenne
27.10.2023 13:48:39
Simon
Udo, klappt super!

Vielen, vielen Dank!!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige