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

Tabellenblätter nach Zellinhalt sortiere

Tabellenblätter nach Zellinhalt sortiere
10.04.2021 23:43:34
Michael
Hallo alle zusammen,
da ich leider nicht so ganz der Makro-Experte bin, stelle ich mein Problem mal hier rein.
Ich habe eine Excel-Tabelle zur Ahnenforschung gemacht, in der Personenstammblätter gespeichert sind. Diese einzelnen Arbeitsblätter werden per Makro erstellt und dann in einer weiteren Tabelle als Inhaltsübersicht inkl. Hyperlinks aufgelistet.
Um mir nun die Arbeit etwas einfacher zu machen, möchte ich, dass die Arbeitsblätter per Marko sortiert werden können, allerdings nicht nach dem Arbeitsblatt-Namen, sondern nach dem Inhalt einer bestimmten Zelle auf jedem Arbeitsblatt (D1). In dieser Zelle steht eine Nummerierung (z.b. I-A-1-a, I-A-1, I-A) und danach sollen die Blätter sortiert werden.
Würde mich sehr freuen, wenn mir hier geholfen werden könnte.
Gruss
Micha

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter nach Zellinhalt sortiere
11.04.2021 05:00:02
Oberschlumpf
Hi Micha,
kannst du bitte mal per Upload eine Bsp-Datei zeigen, in der a) dein beschriebenes Problem nachvollziehbar ist, und b) auch zu lösen ist?
Danke.
Ciao
Thorsten
AW: Tabellenblätter nach Zellinhalt sortiere
11.04.2021 11:35:05
Micha
Hallo Thorsten,
hier habe ich die Datei hochgeladen.
Das rote Tabellenblatt ist die Inhaltsangabe. Dort stehen die relevanten Werte in Spalte F, ansonsten
auf den eigentlichen Stammblättern (die letzten 4) jeweils in der Zelle D1. Was auch noch klasse wäre,
wenn die ersten 3 Blätter von der Sortierung ausgenommen werden könnten.
Schon mal danke und ein schönes WE.
https://www.herber.de/bbs/user/145452.xlsm
Anzeige
AW: Tabellenblätter nach Zellinhalt sortiere
11.04.2021 12:20:09
fcs
Hallo Micha,
ich hatte mich schon mit deinem Problem beschäftigt.
Hier deine Datei mit meinem Lösungsvorschlag.
https://www.herber.de/bbs/user/145455.xlsm
LG
Franz
AW: Tabellenblätter nach Zellinhalt sortiere
11.04.2021 12:48:37
Micha
Hallo Franz,
das klappt ja super, recht herzlichen Dank für die schnelle Hilfe.
Schönes Wochenende.
Gruß
Micha
warum dann offen? o.w.T.
11.04.2021 12:51:26
Werner
AW: warum dann offen? o.w.T.
11.04.2021 20:14:30
Micha
Nun ist mir leider aufgefallen, dass ich selbst einen Denkfehler in der Sache hatte.
Die Sortierung muss immer bis zum -Zeichen gehen und danach muss dann alles bis zum nächsten -Zeichen sortiert werden.
Ich habe eine Datei angehängt, in der auf dem ersten Blatt ersichtlich ist, wie die Sortierung aussehen sollte. Ich hoffe, das sowas möglich ist.
https://www.herber.de/bbs/user/145463.xlsm
Gruß
Micha
Anzeige
AW: warum dann offen? o.w.T.
12.04.2021 18:08:16
fcs
Hallo Micha,
ich werde mal versuchen diese gruppenweise Sortierung umzusetzen.
Ergebnis kommt wahrscheinlich morgen.
LG
Franz
AW: warum dann offen? o.w.T.
12.04.2021 20:04:46
Piet
Hallo
statt Array und Quicksortierung sortiert dieses kleine Programm die Blaetter nach Tabelle1 Spalte F. Da steht der Sortierrhytmus doch drin! Sheets ohne einen Wert in Zelle D1 werden ans Ende gestellt, wie das Blatt "Holtermann"
mfg Piet
Option Explicit       '12.4.2021   Piet   für Herber Forum
Dim AC As Range, lz1 As Long
Sub Blaetter_sortieren()
Dim j As Integer, S As Integer
Dim Tb1 As Worksheet:  S = 4
Set Tb1 = Worksheets("Tabelle1")
On Error Resume Next
'vorhandene Tabellen neu sortieren
lz1 = Tb1.Cells(Rows.Count, "H").End(xlUp).Row
For j = 5 To Worksheets.Count
For Each AC In Tb1.Range("F4:F" & lz1)
With Worksheets(j)
If .Range("D1") = AC.Value Then
Worksheets(j).Move After:=Sheets(AC.Row)
ElseIf .Range("D1") = "" Then
Worksheets(j).Move After:=Sheets(Sheets.Count)
End If
End With
Next AC
Next j
'Tabellen zur Kontrolle auflisten Spalte H
For j = 5 To Worksheets.Count
Tb1.Cells(j - 1, "G") = Worksheets(j).[d1]
Tb1.Cells(j - 1, "H") = Worksheets(j).Name
Next j
Worksheets(1).Select
End Sub

Anzeige
AW: warum dann offen? o.w.T.
14.04.2021 20:27:59
Micha
Hallo Piet,
sorry das ich mich erst jetzt melde, aber deine Lösung kommt leider nicht in Frage, das "Tabelle 1" nur als Ansicht gedacht ist, wie die Sortierung nachher ausssehen soll, aber trotzdem vielen Dank.
Gruß
Micha
AW: warum dann offen? o.w.T.
13.04.2021 00:15:33
fcs
Hallo Micha,
ich habe das Makro angepasst, sodass die Blätter jeweils innerhalb der gleichen Hierarchie-Stufe sortiert werden.
https://www.herber.de/bbs/user/145482.xlsm
LG
Franz
AW: warum dann offen? o.w.T.
14.04.2021 20:29:56
Micha
Hallo Franz,
hab leider erst jetzt Zeit gehabt.
Jetzt sollte die Sortierung perfekt sein, danke für deine perfekte Arbeit.
Gruß
Micha
Der Thread wird dann jetzt geschlossen.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige