Zahlen automatisch sortieren und kopieren

Hallo zusammen!

Ich habe folgendes Problem: In einen festgelegten Bereich (40 Zellen) sollen beliebige Zahlenwerte eingetragen werden (auch weniger als 40). Die Werte sollen dann automatisch (ohne dass eine Aktion vom Benutzer notwendig ist) einmal aufsteigend und einmal absteigend sortiert werden und als sortierte Listen in zwei definierten Bereichen auf dem gleichen Arbeitsblatt abgebildet/kopiert werden.

Kann mir da jemand weiterhelfen?

Viele Grüße,
Liesener

Hallo,
habe zwar keine Lösung parat, da das nur mit Makro geht.
Bedenke die Performance Auswirkungen. Das Makro würde nach jeder Eingabe gestartet.
Bei einem kleineren Rechner, vielen anderen Formeln usw., kann das nerven („Antwortzeit“ des Systems), da man u.U. die Daten nicht schnell eingeben kann.
Ich würde das persönlich über eine Pivot mit einem Update-Button realisieren.
Grüße
Michael

Ich habe folgendes Problem: In einen festgelegten Bereich (40
Zellen) sollen beliebige Zahlenwerte eingetragen werden (auch
weniger als 40). Die Werte sollen dann automatisch (ohne dass
eine Aktion vom Benutzer notwendig ist) einmal aufsteigend und
einmal absteigend sortiert werden und als sortierte Listen in
zwei definierten Bereichen auf dem gleichen Arbeitsblatt
abgebildet/kopiert werden.

Hi Andre,
zeichne dir ein Makro auf während du das Ganze manuell machst, (Extras–Makro–Aufzeichnen) und poste hier den Code.
Gruß
Reinhard

Hallo Reinhard,

hier das Makro:

Sub KopierenSortieren()

’ KopierenSortieren Makro
’ Makro am 23.08.2007 von Andre Liesener aufgezeichnet


Range(„B4:B43“).Select
Selection.Copy
Range(„E4“).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Sort Key1:=Range(„E4“), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range(„B4:B43“).Select
Selection.Copy
Range(„G4“).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Sort Key1:=Range(„G4“), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub

Ich hoffe, das Makro gibt ungefähr wieder, was ich machen möchte. Die Sache ist halt, dass die Werte, die eingegeben werden, gewissermaßen laufend in die entsprechenden Listen einsortiert/einkopiert werden sollen (die aufsteigende und absteigende Sortierung soll ständig aktualisiert werden).

Gruß, Andre

Hi Andre,

Alt+F11, Doppelklick links auf den Blattnamen, im mittleren Auswahlfenster klickst du auf den Pfeil und wählst Worksheet aus,
es erscheint die Prozedurhülle für das Ereignis Selectionchange, das löschst du. Dann rechts im Auswahlfeld „Change“ auswählen, die Prozedurhülle für das Change-Ereignis wird erzeugt. In sie herein kopierst du nachfolgenden Code, Editor schließen.
Sorry, hab grad kein Excel hier, deshalb ungetestet.

Gruß
Reinhard

If target.column2 then exit sub
if target.row34 then exit sub
application.calculation=xlmanual
application.enableevents=false
Range(„B4:B43“).Copy destination:=Range(„E4“)
Range(„B4:B43“).Copy destination:=Range(„G4“)
Range(„E4:E43“).Sort Key1:=Range(„E4“), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range(„G4:G43“).Sort Key1:=Range(„G4“), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Application.CutCopyMode = False
application.enableevents=true
application.calculation=xlautomatic

Hallo Reinhard!

Vielen Dank für Deine Hilfe - klappt hervorragend!

Gruß, André

Nutze KKLEINSTE und KGRÖSSTE
Wenn z.B. in A1:A40 die 40 Zahlen stehen dann
in B1 = KKLEINSTE($a$1:blush:a$40;zeile(a1)) nach unten kopieren
und C1= KGRÖSSTE($a$1:blush:a$40;zeile(a1))nach unten kopieren

In B ist dann aufsteigend, in C automatisch absteigend sortiert.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]