Microsoft Excel

Herbers Excel/VBA-Archiv

Sortieren an Hand mehrerer Kriterien

Betrifft: Sortieren an Hand mehrerer Kriterien von: Rene
Geschrieben am: 18.09.2014 12:47:11

Hallo zusammen,

ich habe gerade ein kleines Problemen mit dem Sortieren mehrerer Spalten.
Bei einer meiner Tabellen muss nach mehreren Kriterien sortiert werden.
Jedoch habe ich derzeit keine Ahnung wie ich das umsetzen kann.

Da in Z2:Z1000 ein Eintrag mehrfach vorhanden sein kann muss dieser zusammen
mit den Spalten O2:O1000 sowie S2:T1000 und T2:T1000 sortiert werden.

Ich benötige also derzeit eine Möglichkeit mehrere Sortierungen vornehmen zu können. Einzelne Sortierung würde nicht funktionieren, da die zusammenhängenden Zeilen dann an unterschiedlichen Stellen hängen würden.

Vielleicht habt ihr ja eine Idee.
Danke und Gruß
René

  

Betrifft: AW: Sortieren an Hand mehrerer Kriterien von: Rudi Maintaire
Geschrieben am: 18.09.2014 12:51:47

Hallo,
bei einer vernünftigen Tabelle bleibt alls richtig.
Excel sieht alles, was nicht von leeren Zeilen oder Spalten abgegrenzt wird als eine Tabelle an.

Gruß
Rudi


  

Betrifft: AW: Sortieren an Hand mehrerer Kriterien von: Rene
Geschrieben am: 18.09.2014 13:57:41

Hallo Rudi,

danke für die Antwort.
Naja das Problem besteht eher darin, dass die Zeilen schon mal bis 40000 oder gar mehr runter gehen können. Natürlich ist eine Sortierung manuell in Excel möglich. Jedoch wäre eine Sortierung mit VBA wesentlich einfacher. Hier komme ich jedoch aktuell nicht wirklich weiter.
VBA sortiert mir zwar die Spalte Z. Jedoch wird anschließend alles wieder neu sortiert.
Das soll jedoch nicht passieren, da ich mehrere Sortierungen mit VBA benötige.

Wenn also Z sortiert ist soll nicht neu, sondern mit den Spalten O, S und T weiter sortiert werden.
So das am Ende wirklich alle Einträge die in Z sortiert sind mit den richtigen Daten aus
den anderen Spalten angezeigt werden, ohne das man wieder komplett neu suchen muss.


  

Betrifft: AW: Sortieren an Hand mehrerer Kriterien von: Rudi Maintaire
Geschrieben am: 18.09.2014 14:13:02

Hallo,
Natürlich ist eine Sortierung manuell in Excel möglich.
Der Recorder ist dein Freund.

Gruß
Rudi


  

Betrifft: AW: Sortieren an Hand mehrerer Kriterien von: Rene
Geschrieben am: 18.09.2014 14:45:38

Hallo Rudi,

danke für den Tip mit dem Rekorder.
Da sich die Einträge immer ändern können, lass ich erstmal alles aufzeichnen was ich sortieren möchte und schau mal ob ich dann das Makro anpassen kann. Ich versuch das mal. Danke


  

Betrifft: AW: Frage wird bereits im Office-Forum von: Daniel
Geschrieben am: 18.09.2014 15:00:33

beantwortet.
Gruß Daniel


  

Betrifft: AW: Frage wird bereits im Office-Forum von: Rene
Geschrieben am: 18.09.2014 15:10:33

Naaaaa, das ist aber so nicht ganz richtig.

Ich habe die Frage dort auch noch einmal gestellt. Jedoch habe ich mein Posting dort zurück gezogen, da man mich auf charmante Art und Weise auf Doppelpostings aufmerksam machte.
Daher wird dort nichts beantwortet.

Ich probiere das mit dem Makro Rekorder aus und schau mal wie weit ich komme. Scheinbar werde ich an der Sortierung in der Sortierung scheitern. Vielleicht funktioniert es aber dennoch. Mal schauen.


  

Betrifft: AW: Frage wird bereits im Office-Forum von: Daniel
Geschrieben am: 18.09.2014 15:18:46

Schon mal die forums-FAQ-gelesen?

https://www.herber.de/forum/faq.htm

auch hier wird das Crossposting nicht gerne gesehen.
klar, wenn nach gewisser zeit keine Antwort kommt, dann kann man die Frage auch woanders stellen, aber am gleichen Tag ist dann doch etwas früh.

Gruß Daniel


  

Betrifft: AW: Frage wird bereits im Office-Forum von: Rene
Geschrieben am: 18.09.2014 15:30:18

Nachdem man mich ja auf nette Art darüber informiert hat, habe ich im anderen Forum ja auch geschrieben, dass man den Beitrag löschen soll. Was jedoch bisher nicht passiert ist. Obwohl ich es nicht so ganz nachvollziehen kann, wie ich ja bereits im anderen Forum geschrieben habe, toleriere und akzeptiere ich diese Regelungen. Daher möchte ich jetzt keine Grundsatzdiskussion vom Zaun brechen. Jedoch kommt es natürlich auch immer darauf an wie man miteinander spricht bzw. schreibt. Im anderen Forum soll mein Beitrag daher gelöscht werden. Obwohl ich darauf keinen Einfluss habe, hoffe ich das es asap passiert und endlich Ruhe zu dem Thema einkehrt. Persönlich hat sich für mich das Office Forum sowieso erledigt. Der Grund sollte wohl nachvollziehbar sein.


  

Betrifft: AW: Sortieren an Hand mehrerer Kriterien von: Adis
Geschrieben am: 19.09.2014 07:10:13

Hallo

ıch habe den Eintrag jetzt erst gelesen. Besteht noch Interesse an einer Lösung?
Dann bitte ich höflich mal die Kriterien zu nennen nach denen sortiert werden muss.
Alles andere ist für mich kalter Kaffe.

Gruss Adis


  

Betrifft: AW: Sortieren an Hand mehrerer Kriterien von: Rene
Geschrieben am: 19.09.2014 07:33:02

Hallo Adis,

danke für deine Antwort.
Habe bisschen im Internet geschaut und folgendes gefunden:

Option Explicit

Sub Sortieren() 
   Dim intZeile%, strSpalte$, intLastRow%, strSortRange$
   Dim ceVorname$, ceNachname$, ceID$, ceGeb$

   On Error GoTo ende
   
   intZeile = ActiveSheet.Range("A:Z").Find(What:="Nachname").Row + 1
   strSpalte = Chr(ActiveSheet.Range("A:Z").Find(What:="Nachname").Column + 64)
   intLastRow = Cells(Rows.Count, 1).End(xlUp).Row
   strSortRange = "$A$" & intZeile & ":$" & strSpalte & "$" & intLastRow
   
   ceVorname = Chr(ActiveSheet.Range("A:Z").Find(What:="Vorname").Column + 64) & intZeile
   ceNachname = Chr(ActiveSheet.Range("A:Z").Find(What:="Nachname").Column + 64) & intZeile
   ceID = Chr(ActiveSheet.Range("A:Z").Find(What:="ID").Column + 64) & intZeile
   ceGeb = Chr(ActiveSheet.Range("A:Z").Find(What:="Geb").Column + 64) & intZeile


   Application.ScreenUpdating = False
   
   With ActiveSheet
      Range(strSortRange).Sort _
         Key1:=.Range(ceGeb), Order1:=xlAscending, Header:=xlGuess
      
      Range(strSortRange).Sort _
         Key1:=.Range(ceNachname), Order1:=xlAscending, _
         Key2:=.Range(ceVorname), Order2:=xlAscending, _
         Key3:=.Range(ceID), Order3:=xlAscending, Header:=xlGuess
      
   End With
ende:
   Application.ScreenUpdating = True
End Sub
Hab das gestern mal kurz getestet und es scheint recht gut zu funktionieren.
Die Spalten die sortiert werden sollen sind beschriftet mit

  • Nachname
    Vorname
    ID


  • Geburtsdatum ist jetzt nicht wirklich tragisch.
    An der Sortierung bin ich gerade bisschen am testen, da einige Beiträge noch nicht
    so sortiert werden wie sie sollen. Jedoch denke ich das ich einfach nur an der Reihenfolge
    bisschen arbeiten muss. Nachdem der Name sortiert wurde, soll Vorname und anschließend als
    letztes ID kommen. Geburtsdatum wäre gut, ist aber nicht tragisch wenn es nicht dabei ist.
    Sofern du vielleicht noch eine andere Idee hättest, würde ich das auch gerne mal ausprobieren.
    Ansonsten bleib ich erst einmal bei dem oben stehenden Code.

    Danke für die Hilfe.


     

    Beiträge aus den Excel-Beispielen zum Thema "Sortieren an Hand mehrerer Kriterien"