Sortieren einer Tabelle per VBA mit mehr als 3 Kriterien

Anbei ein kleines Beispiel für das Sortieren einer Tabelle per VBA mit mehr als 3 Kriterien. Es wird sowohl das auf- als auch das absteigende Sortieren demonstriert.


Bis Excel 2003 ist die Anzahl der Sortierkriterien auf 3 beschränkt, siehe Abb.



Dieses VBA-Makro sortiert eine Liste mit 4 bzw. 5 Sortierkriterien. Den Code zur aufsteigenden Sortierung anhand von 4 Kriterien sehen Sie im nachfolgenden Listing.

     
Sub Sortieren_mit_4Kriterien() 'Wkn / ManNr / GerätNr / StartReihenfolge
   Dim intZeile%, strSpalte$, intLastRow%, strSortRange$
   
Dim ceManNr$, ceWKN$, ceGerätNr$, ceStartreihenfolge$, ceNachname$, ceVorname$

   
On Error GoTo ende
   
   intZeile = ActiveSheet.Range("A:G").Find(What:="Vorname").Row + 1<br />    strSpalte = Chr(ActiveSheet.Range("A:G").Find(What:="Vorname").Column + 64)<br />    intLastRow = Cells(Rows.Count, 1).End(xlUp).Row<br />    strSortRange = "$A$" & intZeile & ":$" & strSpalte & "$" & intLastRow<br />    <br />    ceManNr = Chr(ActiveSheet.Range("A:G").Find(What:="ManNr").Column + 64) & intZeile<br />    ceWKN = Chr(ActiveSheet.Range("A:G").Find(What:="WKN").Column + 64) & intZeile<br />    ceGerätNr = Chr(ActiveSheet.Range("A:G").Find(What:="GerätNr").Column + 64) & intZeile<br />    ceStartreihenfolge = Chr(ActiveSheet.Range("A:G").Find(What:="Startreihenfolge").Column + 64) & intZeile<br />    ceNachname = Chr(ActiveSheet.Range("A:G").Find(What:="Nachname").Column + 64) & intZeile<br />    ceVorname = Chr(ActiveSheet.Range("A:G").Find(What:="Vorname").Column + 64) & intZeile<br /> <br />    Application.ScreenUpdating = </span><span style="color: #0000ff;">False

   
   
With ActiveSheet
      Range(strSortRange).Sort _
         Key1:=.Range(ceStartreihenfolge), Order1:=xlAscending, Header:=xlGuess
           
'1=Sortierkriterium 4 = Startreihenfolge
      Range(strSortRange).Sort _
         Key1:=.Range(ceWKN), Order1:=xlAscending, _
         Key2:=.Range(ceManNr), Order2:=xlAscending, _
         Key3:=.Range(ceGerätNr), Order3:=xlDescending, Header:=xlGuess
           
'1=Sortierkriterium 1 = Wkn
           '2=Sortierkriterium 2 = ManNr
           '3=Sortierkriterium 3 = GerätNr
   End With
ende:
   Application.ScreenUpdating = 
True
End Sub 

 

In der Datei, welche Sie herunterladen können, ist auch der Code für das Sortieren mit 5 Kriterien enthalten.

 

Ab Excel 2007 ist der Zusatzcode nicht mehr notwendig, da in dieser Version und in Excel 2010 bis zu 64 Sortierkriterien standardmäßig unterstützt werden, siehe folgende Abbildung.

 

   

Artikel mit ähnlichen Themen

   

Aktuell sind 35 Gäste und keine Mitglieder online

   
Twitter Account für Excel-InsideExcel-Inside auf FacebookExcel-Inside auf Linked InExcel-Live News blogExcel-Inside RSS-FeedExcel-Inside auf Xing

Excel Auftragsprogrammierung

Access Auftragsprogrammierung
Word Auftragsprogrammierung

Outlook Auftragsprogrammierung

 Maßgeschneiderte
Individuallösungen
  für Ihren Erfolg
   

Sie haben eine Frage ...
... hier geht´s zum Office Forum

Forum Office-Fragen

   
   
   
   

Forum Office-FragenOffice-Fragen.de ist das Forum rund um Microsoft Office, PALO und LibreOffice.
[Excel, Word, Outlook, Access, Visio, Office365, Office mac: u.v.m.]

Wenn Sie Fragen haben, dann können Sie diese jederzeit gerne im Forum stellen. Die anwesenden Moderatoren und ggf.
auch andere Forumsteilnehmer werden Ihre Problemstellung schnellstmöglich bearbeiten.

Möchten Sie Ihr Wissen weitergeben? Dann sind Sie selbstverständlich auch jederzeit herzlich im Forum willkommen.

Jeder registrierte Benutzer erhält das kostenlose E-Book "Die 100 wichtigsten Formeln und Funktionen" für Excel.

Registrieren Sie sich noch heute und sichern Sie sich das kostenlose Willkommensgeschenk.

» zum Forum...

   
Live tracking and statistics