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

Forumthread: Zeilen mit VBA Code sortieren

Zeilen mit VBA Code sortieren
23.12.2017 21:48:16
Maximus
Guten Abend,
in Spalte A habe ich immer aus 10 Gruppen eine Gruppe stehen.
Gruppen:
Banken
E-Mails
Onlineshops
Lotto
Downloads
Cloudspeicher
Online-Videothek
Vermiedungen
Foren
Allgemeines
(stehen in M2:M11)
Meine Tabelle besteht aus vielen Zeilen, wobei in Spalte A immer eine der 10 Gruppen aufgeführt ist.
Wenn ich jetzt mehrere Zeilen zugefügt habe, mal aus der einen mal aus der anderen Gruppe möchte zwischendurch durch aktivieren eines Makro die Zeilen automatisch nach den Gruppen sortiert haben.
Geht so etwas?
Wäre super wenn mir jemand helfen könnte!
Gruss Markus
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zeilen mit VBA Code sortieren
23.12.2017 21:57:32
Sepp
Hallo Markus,
dazu brauchst du kein VBA! Ganzen Bereich markieren und nach Spalte A sortieren.
Gruß Sepp

AW: Zeilen mit VBA Code sortieren
23.12.2017 22:21:28
Maximus
Würde diese Sortierung gerne immer mit einem Button vornehmen, wenn es möglich ist.
Gruss Markus
Anzeige
AW: Zeilen mit VBA Code sortieren
23.12.2017 23:01:23
Sepp
Hallo Markus,
n ein allgemeines Modul.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub sortieren()
With Sheets("Tabelle1").Range("A:M") 'Tabellenname und Bereich anpassen!
  .Sort Key1:=.Cells(1, 1), Order1:=xlAscending, Header:=xlGuess
End With
End Sub

Gruß Sepp

Anzeige
AW: Zeilen mit VBA Code sortieren
23.12.2017 23:38:51
Maximus
Super danke Sepp,
also wenn ich nur nach den Gruppen in Spalte A sortieren möchte und sich alles in der Tabelle1 abspielt, dann sieht es wie folgt aus:
Option Explicit
Sub sortieren()
With Sheets("Tabelle1").Range("A2:A500") 'Tabellenname und Bereich anpassen!
.Sort Key1:=.Cells(1, 1), Order1:=xlAscending, Header:=xlGuess
End With
End Sub

Gruss Markus
Anzeige
AW: Zeilen mit VBA Code sortieren
23.12.2017 23:53:54
Sepp
Hallo Markus,
nein! Du musst den gesamten Bereich angeben, sonst wird nur Spalte A sortiert und die Zuordnung der Daten stimmt dann natürlich nicht mehr!
Gruß Sepp

Anzeige
AW: Zeilen mit VBA Code sortieren
26.12.2017 07:34:45
Maximus
Hallo,benutze folgendes VBA-Programm fürs Sortieren (siehe unten). Nur manchmal, wenn ich dann über einen Button das "Sortieren" starte, hängt es sich auf.
Woran könnte es liegen.
Gruß Markus
Option Explicit
Sub sortieren()
With Sheets("Tabelle1").Range("A2:K1100") 'Tabellenname und Bereich anpassen!
.Sort Key1:=.Cells(1, 1), Order1:=xlAscending, Header:=xlGuess
End With
End Sub

Anzeige
AW: Zeilen mit VBA Code sortieren
26.12.2017 18:41:46
Maximus
Weiss jemand einen Rat, woran es lügen könnte, wenn das Makro ab und zu nicht funktioniert.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilen mit VBA Code sortieren


Schritt-für-Schritt-Anleitung

  1. Öffne deine Excel-Datei 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 (deineDatei.xlsx)".
    • Wähle "Einfügen" und dann "Modul".
  3. Kopiere den folgenden VBA-Code in das Modul:

    Option Explicit
    
    Sub sortieren()
       With Sheets("Tabelle1").Range("A:M") 'Tabellenname und Bereich anpassen!
           .Sort Key1:=.Cells(1, 1), Order1:=xlAscending, Header:=xlGuess
       End With
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Füge einen Button ein:

    • Gehe zu "Entwicklertools" > "Einfügen" > "Button (Formularsteuerelement)".
    • Zeichne den Button auf dein Arbeitsblatt.
    • Wähle das Makro sortieren aus, wenn du dazu aufgefordert wirst.
  6. Klicke auf den Button, um die Zeilen in deiner Tabelle nach den Gruppen in Spalte A zu sortieren.


Häufige Fehler und Lösungen

  • Problem: Makro funktioniert nicht oder hängt sich auf.

    • Lösung: Überprüfe, ob der gesamte Bereich korrekt angegeben ist. Stelle sicher, dass der Bereich im Code mit dem tatsächlichen Bereich deiner Daten übereinstimmt.
  • Problem: Nur Spalte A wird sortiert.

    • Lösung: Du musst den gesamten Bereich angeben (z.B. Range("A:M")), damit die Zuordnung der Daten erhalten bleibt.

Alternative Methoden

Wenn Du VBA nicht verwenden möchtest, kannst Du auch die integrierten Excel-Sortierfunktionen nutzen:

  1. Markiere den Bereich, den Du sortieren möchtest.
  2. Gehe zu "Daten" > "Sortieren".
  3. Wähle die Spalte aus, nach der Du sortieren möchtest, und lege die Sortierreihenfolge (aufsteigend oder absteigend) fest.

Du kannst auch einen Sortieren-Button in die Symbolleiste einfügen, um den Prozess zu beschleunigen.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du mit VBA mehrere Spalten gleichzeitig sortieren kannst:

Sub sortierenMehrereSpalten()
    With Sheets("Tabelle1").Range("A:M")
        .Sort Key1:=.Cells(1, 1), Order1:=xlAscending, _
              Key2:=.Cells(1, 2), Order2:=xlDescending, Header:=xlYes
    End With
End Sub

In diesem Beispiel wird zuerst nach der ersten Spalte aufsteigend und dann nach der zweiten Spalte absteigend sortiert.


Tipps für Profis

  • Makros speichern: Stelle sicher, dass Du deine Datei im .xlsm-Format speicherst, um die Makros zu behalten.
  • Benutzerdefinierte Sortierkriterien: Nutze das Sort-Objekt, um benutzerdefinierte Sortierkriterien zu erstellen, wenn Du mehr Kontrolle über den Sortierprozess benötigst.
  • Fehlerbehandlung: Implementiere Fehlerbehandlung im VBA-Code, um unerwartete Probleme zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich nur bestimmte Zeilen sortieren?
Du kannst den Bereich im VBA-Code anpassen, um nur die gewählten Zeilen zu sortieren, z.B. Range("A5:A20").

2. Was ist der Unterschied zwischen aufsteigend und absteigend sortieren?
Beim aufsteigenden Sortieren werden die Werte von klein nach groß angeordnet, während beim absteigenden Sortieren die Werte von groß nach klein angeordnet werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige