Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Tabelle aus anderer Tabelle sortieren lassen

Tabelle aus anderer Tabelle sortieren lassen
18.03.2016 23:19:50
gerhard
Hallo zusammen,
Bitte um VBA Hilfe!
Wie muss der VBA Code in der beiliegenden Testmappe abgeändert werden, dass
das ausgeblendete Tabellenblatt Adresse aus dem Tabellenblatt Start sortiert wird,
ohne das Tabellenblatt Adresse einzublenden und selektiert werden muss?
Vielen Dank für Eure Hilfe
Gruß Gerhard
https://www.herber.de/bbs/user/104461.xls

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle aus anderer Tabelle sortieren lassen
19.03.2016 09:12:37
Hajo_Zi

Sub Dynamisches_sortieren()
Dim letzteSpalte As Long
Dim letzteZeile As Long
With Worksheets("Adressen")
letzteSpalte = .Cells(2, 1).End(xlToRight).Column
letzteZeile = .Cells(2, 1).End(xlDown).Row
.Range(.Cells(2, 1), .Cells(letzteZeile, letzteSpalte)).Sort _
Key1:=.Range("A2"), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
MsgBox "Sortierung ist erfolgt"
End With
End Sub

Anzeige
AW: Tabelle aus anderer Tabelle sortieren lassen
19.03.2016 09:41:34
gerhard
Hallo Hajo und guten Morgen,
Vielen Dank für Deine schnelle Hilfe
funktioniert super!!
Gruß Gerhard
und ein schönes Wochenende
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Tabelle aus anderer Tabelle sortieren lassen


Schritt-für-Schritt-Anleitung

Um ein ausgeblendetes Tabellenblatt in Excel zu sortieren, ohne es einzublenden, kannst Du den folgenden VBA-Code verwenden. Dieser Code wird im Visual Basic for Applications (VBA) Editor eingegeben.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  3. Kopiere den folgenden Code in das Modul:

    Sub Dynamisches_sortieren()
       Dim letzteSpalte As Long
       Dim letzteZeile As Long
       With Worksheets("Adressen")
           letzteSpalte = .Cells(2, 1).End(xlToRight).Column
           letzteZeile = .Cells(2, 1).End(xlDown).Row
           .Range(.Cells(2, 1), .Cells(letzteZeile, letzteSpalte)).Sort _
               Key1:=.Range("A2"), Order1:=xlAscending, _
               Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
               Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
           MsgBox "Sortierung ist erfolgt"
       End With
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.
  5. Führe das Makro aus, indem Du auf Entwicklertools und dann auf Makros klickst, wähle Dynamisches_sortieren aus und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Fehler: "Sub oder Function nicht gefunden"

    • Lösung: Stelle sicher, dass der Code im richtigen Modul eingefügt wurde und dass der Name des Sub korrekt geschrieben ist.
  • Fehler: "Index außerhalb des Bereichs"

    • Lösung: Überprüfe, ob das Tabellenblatt "Adressen" tatsächlich existiert und korrekt benannt ist.

Alternative Methoden

Falls Du keine VBA-Lösungen nutzen möchtest, gibt es auch die Möglichkeit, Daten manuell zu sortieren:

  1. Öffne das Tabellenblatt, das Du sortieren möchtest.
  2. Wähle die Zellen aus, die sortiert werden sollen.
  3. Gehe zu Daten und klicke auf Sortieren.
  4. Wähle die Spalte aus, nach der sortiert werden soll, und klicke auf OK.

Diese Methode erfordert jedoch, dass das Tabellenblatt sichtbar ist.


Praktische Beispiele

Angenommen, Du hast eine Liste von Adressen im Tabellenblatt "Adressen". Um die Liste nach Nachnamen zu sortieren, kannst Du den oben genannten VBA-Code verwenden. Achte darauf, dass die Nachnamen in der Spalte A stehen. Der Code wird die Daten automatisch nach der zweiten Zeile sortieren.


Tipps für Profis

  • Automatisierung: Du kannst den VBA-Code so anpassen, dass er bei bestimmten Ereignissen (z.B. beim Öffnen der Datei) automatisch ausgeführt wird.
  • Fehlerbehandlung: Füge eine Fehlerbehandlungsroutine hinzu, um potenzielle Laufzeitfehler elegant zu behandeln.

Beispiel für eine einfache Fehlerbehandlung:

On Error GoTo FehlerHandler
' Dein Sortiercode hier
Exit Sub

FehlerHandler:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description

FAQ: Häufige Fragen

1. Kann ich den Code auch für andere Tabellenblätter verwenden? Ja, Du musst lediglich den Namen des Tabellenblatts im Code anpassen.

2. Was passiert, wenn ich das ausgeblendete Tabellenblatt nicht benenne? Der Code wird einen Fehler ausgeben, da er das spezifische Tabellenblatt nicht finden kann. Achte darauf, die Namen korrekt zu verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige