Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Tabellenblätter sortieren (nicht alphabetisch)

Tabellenblätter sortieren (nicht alphabetisch)
23.10.2006 14:33:20
snoopyine
Hallo zusammen,
ich bräuchte mal wieder eure Hilfe.
Ich möchte mittles Makro meine Tabellenblätter sortieren, aber nicht aplphabetisch, sondern nach einer bestimmten vorgegebenen Reihenfolge.
Für Tipps und Ratschläge wäre ich sehr dankbar.
Gruß
snoopyine
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter sortieren (nicht alphabetisch)
23.10.2006 14:42:27
Daniel
Hallo
so zum beispiel:
Sheet an den Anfang sortieren:
Sheets("Daten").Move Before:=Sheets(1)
Sheet ans Ende sortieren:
Sheets("Daten").Move after:=sheets(Activeworkbook.sheets.count)
Die Reihenfolge ist bisher nur dir bekannt.
Gruß, Daniel
AW: Tabellenblätter sortieren (nicht alphabetisch)
23.10.2006 15:11:48
snoopyine
Hallo Daniel.
Die Befehle move before/after sind mir bekannt. mein problem ist nur, ich will nicht für jedes Datenblatt den Befehl eingeben. Da sich die Reihenfolge auch ändern kann.
Kann man das nicht so lösen, das Excel sich die Sortierfolge aus eine anderen Tabelle zieht?
Gruß
Snoopyine
Anzeige
AW: Tabellenblätter sortieren (nicht alphabetisch)
23.10.2006 15:36:12
Daniel
Hallo
sollte gehen.
Wenn die Namen aller deiner Tabellenblätter im sheet("Tabelle1") untereinander in der von dir gewünschten Reihenfolge stehen, mit dieser Schleife:

for each Zelle in Sheets("Tabelle1").range("A1").currentregion
sheets(Zelle.value).Move after:=sheets(thisworkbook.sheets.count)
next

Gruß, Daniel
Anzeige
AW: Tabellenblätter sortieren (nicht alphabetisch)
23.10.2006 16:59:07
snoopyine
Hallo Daniel.
danke erst einmal.
habe es mal wie folgt abgeändert funktioniert aber nicht.
ich habe die Reihenfolge in Sheet1
dim i as long
i=99
i=i+1
for each Cells(i,1) in Worksheets(1).range("A100").currentregion
sheets(cells(i,1).value).Move after:=sheets(thisworkbook.sheets.count)next
Excel hat problem mit dem RangeObject und currentregion.
Kannst du mir weiterhelfen?
gruß
Anzeige
AW: Tabellenblätter sortieren (nicht alphabetisch)
23.10.2006 18:28:36
Daniel
Hallo
die ForEach-Schleife muß so aus sehen:

Sub Test()
Dim Zelle As Range
For Each Zelle In Sheets("Tabelle1").Range("A1").CurrentRegion.cells
Sheets(Zelle.Value).Move after:=Sheets(ThisWorkbook.Sheets.Count)
Next
End Sub

Die TabNamen stehen im Sheet Tabelle1 ab Zelle A1 abwärts
kann sein, daß ich das .Cells am Ende vergessen habe.
Manchmal braucht mans, manchmal gehts ohne.
Mit i oder sonstigen Schleifenzählern brauchst du bei ForEACH nicht zu arbeiten, das Range-Objekt Zelle wird nacheinander auf jede einzelne Zelle des Benannten Range-Objekts gesetzt.
Damit CurrentRegion funktioniert, müssen die Sheetnamen in einer lückenlosen Reihenfolge untereinander stehen und die rundherum angrenzenden Zellen müssen leer sein.
Wenn sich die Anzahl deiner Sheets nicht ständig ändert, kannst du den Zellbereich auch direkt angeben:
For each Zelle in Sheets("Tabell1").range("A100:A120")
mit dem Currentregion spare ich mir halt das anpaasen des Zellbereichs.
Currentregion hat den gleichen Effekt wie die Tastenkombination +
Damit kannst du Testen, ob der Richtige Zellbereich selektiert wird.
Gruß, Daniel
Anzeige
AW: Tabellenblätter sortieren (nicht alphabetisch)
24.10.2006 10:27:36
snoopyine
Vielen vielen Danke Daniel !!
Funktioniert super und ich habe es jetzt auch verstanden !!!
Grüße
snoopyine
AW: Tabellenblätter sortieren (nicht alphabetisch)
24.10.2006 10:50:59
snoopyine
Hallo,
habe jetzt doch noch ein kleines Problem. Es funktioniert super. Nur wenn ich es in ein SUB einbinde oder per Call aus einem anderen Modul sarten möchhte, kommt immer die Fehlermedlung :
LFZ 1004: Die Currentregion-Eigenschaft des RangeObjectes kann nicht zugeordnet werden.
Ein Idee an was das liegt?
Gruß
snoopyine
Anzeige
AW: Tabellenblätter sortieren (nicht alphabetisch)
24.10.2006 11:20:37
snoopyine
Hallo daniel,
habe den Fehler nun endlich lösen können.
Ich habe vergessen mein Blatt zu aktivieren in dem meine Liste ist nach der ich sortieren will.
Danke
snoopyine
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Tabellenblätter in Excel sortieren (nicht alphabetisch)


Schritt-für-Schritt-Anleitung

Um Excel-Tabellenblätter nach einer bestimmten Reihenfolge zu sortieren, kannst du ein Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub TabellenblaetterSortieren()
       Dim Zelle As Range
       For Each Zelle In Sheets("Tabelle1").Range("A1").CurrentRegion.Cells
           Sheets(Zelle.Value).Move after:=Sheets(ThisWorkbook.Sheets.Count)
       Next
    End Sub

    Stelle sicher, dass die Namen der Tabellenblätter im Sheet("Tabelle1") untereinander in der gewünschten Reihenfolge stehen.

  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus: Gehe zu Entwicklertools > Makros, wähle TabellenblaetterSortieren und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Fehler 1004: Currentregion-Eigenschaft kann nicht zugeordnet werden.
    Dieser Fehler tritt häufig auf, wenn das aktive Blatt nicht das Blatt ist, das die Sortierliste enthält. Stelle sicher, dass das entsprechende Blatt aktiviert ist, bevor du das Makro ausführst.

  • Tabellenblatt wird nicht gefunden.
    Überprüfe, ob die Namen der Tabellenblätter genau mit den Einträgen in deiner Liste übereinstimmen. Tippfehler führen dazu, dass Excel das Blatt nicht findet.


Alternative Methoden

Du kannst auch Excel-Tabellenblätter sortieren, ohne ein Makro zu verwenden. Hier sind einige alternative Methoden:

  1. Manuelles Verschieben: Halte die Strg-Taste gedrückt und ziehe das Tabellenblatt an die gewünschte Position.
  2. Verwendung von VBA mit einer festen Liste: Anstatt eine Liste in einem anderen Blatt zu verwenden, kannst du die Namen der Blätter direkt im Code angeben:

    Sheets("Daten").Move Before:=Sheets(1)
    Sheets("Bericht").Move After:=Sheets(Sheets.Count)

Praktische Beispiele

Angenommen, du hast folgende Tabellenblätter: "Daten", "Bericht", "Analyse". Du möchtest sie in der Reihenfolge "Bericht", "Daten", "Analyse" sortieren. Erstelle eine Liste in Tabelle1:

A1: Bericht
A2: Daten
A3: Analyse

Führe dann das oben bereitgestellte Makro aus, um die Blätter entsprechend zu sortieren.


Tipps für Profis

  • Verwende CurrentRegion: Diese Methode erlaubt es dir, den Bereich dynamisch zu definieren, ohne die Zellgrenzen manuell anzupassen.
  • Teste deine Makros: Nutze die Debug-Funktion im VBA-Editor, um sicherzustellen, dass dein Code ohne Fehler durchläuft.
  • Speichere deine Datei als Makro-aktivierte Arbeitsmappe: Achte darauf, dass du deine Datei im Format .xlsm speicherst, um die Makros zu behalten.

FAQ: Häufige Fragen

1. Wie kann ich die Tabellenblätter alphabetisch sortieren?
Verwende die Funktion excel tabellenblätter alphabetisch sortieren in VBA, um die Blätter automatisch in alphabetischer Reihenfolge zu organisieren.

2. Ist es möglich, Tabellenblätter ohne Makro zu sortieren?
Ja, du kannst die Blätter manuell per Drag & Drop sortieren oder die Move-Befehle in einer statischen VBA-Lösung verwenden.

3. Wo kann ich das 1. FC Köln Logo zum Ausdrucken finden?
Das 1. FC Köln Logo findest du auf offiziellen Websites oder Fan-Seiten, nicht direkt in Excel.

4. Was ist die beste Methode, um Tabellenblätter in großen Arbeitsmappen zu sortieren?
Die Verwendung von VBA ist die effizienteste Methode, besonders wenn du regelmäßig die Reihenfolge ändern musst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige