Dynamische Sortierung
#1
Hallo.
Ich habe ein kleines Problemschen

Ich habe eine Liste mit 7 Spalten erstellt, nun möchte ich diese dynamisch, also nach Eingabe von Daten sortieren lassen.
Das geht, wenn ich richtig informiert bin nur über VBA, ansonsten musste ich immr manuell sortieren lassen.

Nun möchte ich allerding, dass er auf folgende Art sortiert:

In den Spalten stehen zahlen, und er soll die Zeilen aus bspw. Spalte D der Grösse nach sortieren.
Wenn 2 oder mehr Werte dieser Spalte den gleichen Wert haben dann soll er dii Zeilen nach Spalte B sortieren, usw.
Das soll er insgesammt 3 mal, also unter Berücksichtigung von 3 Spalten machen.

Wie bekomme ich das hin?
Manuell unter "Benutzerdefinierter Sortierung" Funktioniert das wunderbar.
Einfach 3 Sortierregel und fertig.
Dass Problem ist eben, dass es manuell gemacht werden muss.
Ich hätte es gern Automatisch, sobald man die Listen aktuallisiert.

Ich muss dazu sagen, dass ich keinen Plan von VBA, also Lösungsansätze, helfen mir nicht wirklich weiter.
Wenn sich jemand die Mühe machen würde und mir einen Code schreiben könnte, wäre das echt klasse.

Wo ich diesen Code einsetzen und Ausführen muss, müsste man mir auch noch sagen.
Mit VBA habe ich mich nie beschäftigt, weil nie gebraucht.

Danke
Top
#2
Hallo,

ich habe auch keinen Plan von VBA aber ich würde folgendes machen:

Im Registerblatt Entwicklertools (wenn das bei dir nicht angezeigt wird kannst du es über Datei - Optionen - Menüband anpassen einblenden indem du rechts einen Haken setzt) gibt es den Punkt 'Makro aufzeichnen'.

Ich würde das aktivieren, dann die händische Sortierung vornehmen und anschließend die Aufzeichnung stoppen.

Du erhälst einen VBA-Code der vermutlich nachbearbeitet werden müsste, aber diese Grundgerüst könntest du posten (mit Alt-F8 kannst du den VBA-Editor einblenden und den Code ansehen bzw. kopieren) und dann sollten sich hier VBA-Experten finden die dir mit der Anpassung weiterhelfen können.

Nachtrag: Alternativ könntest du natürlich eine kleine Beispielsdatei erstellen die deinem tatsächlichen Tabellenaufbau entspricht, das Makro aufzeichnen und dann einfach die Datei als *.xlsm speichern und hier hochladen.
Gruß
Peter
Top
#3
Hallo,

das kann man auch mit dem Spezialfilter lösen.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#4
Hi Klaus-Dieter

Kann man mit dem Spezialfilter in anderen Excel Versionen dann auch Sotieren? Excel 2007 sehe ich die Funktion nicht.

Gruß Elex
Top
#5
Hallo ,

schau mal Unter --> Daten --> Sortieren und Filtern --> Erweitert
Top
#6
Hallo Elex,

Zitat:Kann man mit dem Spezialfilter in anderen Excel Versionen dann auch Sotieren? Excel 2007 sehe ich die Funktion nicht.
 
Filtern und sortieren sind aus meiner Sicht zwei verschiedene Dinge. Du kannst mit dem Spezialfilter das Filterergebnis in ein neues Blatt schreiben lassen. Das kannst du dann sortieren bis der Arzt kommt. Der Vorteil beim Spezialfilter ist, dass man fest definierte Sortierkriterien hat. Das kann man auch per Makro (einschließlich der gewünschten Sortierung) ablaufen lassen.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#7
Hallo,
 
Zitat:Filtern und sortieren sind aus meiner Sicht zwei verschiedene Dinge.
Das hatte ich eben auch so gesehen. Aber hätte ja sein können das im Spezialfilter in neuern Excel Versionen eine Sortierung integriert ist. Wenn nicht ist der Vorschlag vielleicht nicht ganz passend für den TE, da er ja nur Sortieren möchte.

Gruß Elex
Top
#8
Hallo Elex,

du hast recht, mein Lösungsvorschlag passt nicht zum Problem, da habe ich wohl was falsch gelesen.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Top
#9
Danke für eure Vorschläge.
ich werde mal die sache mit der "Aufzeichnung" probieren.
Kenne das aus bspw. Photoshop, habe aber nicht daran gedacht, dass excel das auch kann.
Ich probiere das und melde mich.
Danke
Top
#10
Sooooo.
Das hat wunderbar funktioniert.
Ich poste mal den Code:
Ich würde die Spezialisten von euch mal bitten drüber zu schauen und gegebenfalls zu bereinigen, da ich des öfteren gelesen habe,
dass die Aufzeichnungsfunktion unsauberen Code erstellt.
Danke

PHP-Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'
Sort Makro
'

'
 
   ActiveWorkbook.Worksheets("Tabelle2").Sort.SortFields.Clear
    ActiveWorkbook
.Worksheets("Tabelle2").Sort.SortFields.Add Key:=Range("K6:K9"_
        
SortOn:=xlSortOnValuesOrder:=xlDescendingDataOption:=xlSortNormal
    ActiveWorkbook
.Worksheets("Tabelle2").Sort.SortFields.Add Key:=Range("J6:J9"_
        
SortOn:=xlSortOnValuesOrder:=xlDescendingDataOption:=xlSortNormal
    ActiveWorkbook
.Worksheets("Tabelle2").Sort.SortFields.Add Key:=Range("H6:H9"_
        
SortOn:=xlSortOnValuesOrder:=xlDescendingDataOption:=xlSortNormal
    With ActiveWorkbook
.Worksheets("Tabelle2").Sort
        
.SetRange Range("B6:K9")
 
       .Header xlGuess
        
.MatchCase False
        
.Orientation xlTopToBottom
        
.SortMethod xlPinYin
        
.Apply
    End With
End Sub 
Achso,
Nochmal kurz zur Erklärung:
Ich habe eine Tabelle auf Arbeitsblatt 1 und eine auf Arbeitsblatt 2.
Wenn ich etwas in Arbeitsblatt 1 ändere, wird automatisch die Tabelle auf Arbeitsblatt 2 sortiert.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste