Anzeige
Archiv - Navigation
1884to1888
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 in einer Datei sortieren

Tabellenblätter in einer Datei sortieren
13.06.2022 12:58:21
Dilek
Hallo zusammen,
 
https://www.herber.de/bbs/user/153537.xlsm
Ich habe eine Datenbank mit mehreren Tabellenblättern / Arbeitsmappen. Ein Tabellenblatt davon ist eine Gesamtübersicht bzw. Inhaltsübersicht der vorhandenen Tabellen in dieser Datei und ein anderes ist eine Vorlage Tabelle. Die restlichen Tabellen werden anhand dieser „Vorlage“ erstellt. Nun würde ich gerne die Tabellen anhand der Zelle G26 sortieren, außer Gesamt und Vorlage die sollen an letzter (Vorlage) und erster Stelle (Gesamt) bleiben.
 
Habe hierfür zufällig was in diesem tollen Forum gefunden. Habe es 1:1 in meine Datei kopiert, es hat zwar sortiert aber nicht korrekt.
 
Tabellen Blatt „Gesamt“ ändert seine Position und die KW wird nicht richtig sortiert. KW 05 / 23 erscheint an 3. Stelle obwohl es weiter unten stehen müsste. KW25 steht vor KW23.
 
Da ich mich mit VBA absolut nicht auskenne, weiß ich nicht was ich ändern muss damit es richtig funktioniert.
 
Würde mich sehr freuen, wenn ihr Profi's drüber schauen könntet und es enstpr. anpassen könntet.
Vorab ein riesen großes Dankeschön.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter in einer Datei sortieren
13.06.2022 13:15:44
Rudi
Hallo,

Sub BlaetterSortierenKW()
Dim x As Integer, y As Integer, wsCount As Integer
Application.ScreenUpdating = False
wsCount = ActiveWorkbook.Worksheets.Count
For x = 1 To wsCount
For y = x To wsCount
If Worksheets(y).Range("G26") 
Gruß
Rudi
AW: Tabellenblätter in einer Datei sortieren
13.06.2022 13:29:40
Dilek
Hallo Rudi,
super - vielen lieben Dank.
Kann man noch u. g. Code mit integrieren so dass die Tabellen Blätter sortiert werden und direkt im Anschluss die Blattnamen in der Gesamtübersicht sortiert werden?
Somit werden beide Aktionen auf einmal ausgeführt.
Option Explicit

Sub Blattnamen()
Dim lngSheets As Long 'Sheets sind alle Register
Dim i As Long
lngSheets = ThisWorkbook.Sheets.Count
For i = 1 To lngSheets
ThisWorkbook.Sheets("Gesamt").Cells(1 + i, 1).Value = ThisWorkbook.Sheets(i).Name
Next i
End Sub

Anzeige
AW: Tabellenblätter in einer Datei sortieren
13.06.2022 13:34:55
Rudi
Hallo,
setz einfach vor End Sub Call Blattnamen.
Gruß
Rudi
AW: Tabellenblätter in einer Datei sortieren
13.06.2022 13:37:24
Dilek
Perfekt - vielen lieben Dank.
AW: Tabellenblätter in einer Datei sortieren
13.06.2022 16:04:32
snb
Du versuchst ein falsche Struktur zu beheben.
Du brauchst nur eine Vorlage.
ähnlichte Daten gehören in nur einem Arbeitsblatt (database).
AW: Tabellenblätter in einer Datei sortieren
13.06.2022 16:43:57
Dilek
? um ehrlich zu sein verstehe ich nur Bahnhof :-)
AW: Tabellenblätter in einer Datei sortieren
13.06.2022 17:26:37
Daniel
Hi
ich würde mir das leben einfacher machen und in einem freien Bereich der Tabelle die Blattnamen und das Sortierkriterium eintragen (G26), dann diese Tabelle mit der Excel-Sortierfunktion sortieren und dann die Blätter an dieser Reihenfolge ausrichten.
Dazu kannst du diesen Code verwenden, er benutzt die freien Spalten X:Y auf dem Blatt "Gesamt", dieses müsstest du ggf anpassen:

Sub SortBlätter_Neu()
Dim sh As Worksheet
Dim i As Long
i = 1
With ThisWorkbook.Sheets("GESAMT").Range("X:Y")
.ClearContents
For Each sh In ThisWorkbook.Worksheets
.Cells(i, 1).Value = sh.Name
Select Case sh.Name
Case "GESAMT"
.Cells(i, 2) = 0
Case "Vorlage"
.Cells(i, 2).Formula = "=NA()"
Case Else
.Cells(i, 2) = sh.Range("G26")
End Select
i = i + 1
Next
.Sort key1:=.Cells(1, 2), order1:=xlAscending, Header:=xlNo
For i = i - 1 To 1 Step -1
ThisWorkbook.Sheets(.Cells(i, 1).Value).Move Before:=Sheets(1)
Next
.ClearContents
End With
End Sub
im Blatt "Vorlage (5)" steht in der Zelle G26 der Wert "05" als Text und nicht als Zahl. Hat das einen Grund?
da es Text ist, wird er in der Sortierung nach den Zahlen einsortiert. Wenn das nicht gewünscht ist, entweder ebenfalls als Zahl eingeben (man kann die führende 0 über die Bedingte Formatierung erzeugen), oder du machst die Umwandlung bei der Übernahme des Wertes mit diesem Code im Case Else:

.Cells(i, 2).FormulaLocal = sh.Range("G26").Text
oder als weitere Alternative: du programmierst das Sortieren nicht mit dem Einzeiler aus der Pre-2007-Ära, sondern mit dem modernen Code (sind ein paar zeilen mehr) und stelle die "DataOption" so ein, das Texte die wie Zahlen aussehen, als Zahlen sortiert werden (nutzte den Recorder)
Gruß Daniel
Anzeige

196 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige