Tabelle sortieren nach mehreren Spalten

Grüezi Skaletti

Sorry für meine Frust-Gedanken von gestern Nacht, aber irgendwie hatte ich den Eindruck, dass wir uns nur im Kreis drehen und die Damo-Mappen immer wieder anders aussehen.

ich will garantiert niemanden vera…
In meiner Anwendung ist dein Code im Modul „Diese
Arbeitsmappe“,
und die Tabellenblätter haben die Namen „LG frei Jugend
Einzel“ usw.

Fein, das ist schon mal eine gute Voraussetzung.
Bitte gestalte doch deine Demo-Mappen *genau so* wie deine eigentliche Anwendung, denn nur dann kannst Du den Code genau so übernehmen wie Du ihn hier bekommst.

Ich hatte lediglich das Tabellenblatt kopiert und verlinkt.

Ja, und leider nicht korrekt umbenannt.

Vielleicht kapier ich als Anfänger nicht immer alles schnell
genug.
Da muss man schon mal etwas Geduld haben.

Ja, ich weiss, ich erinnere mich auch an meine Zeit zurück und ‚Geduld‘ ist mein zweiter Vornahme (meistens, jedenfalls :wink:)

Was meinst du mit Text und keine Zahlen?
Liegt es da dran das die Daten aus ein UserForm mit TextBoxen
kommen, und durch den Wert aus einer ComboBox bestimmt wird,
dass die Daten in die richtige Tabelle kommen?

Ganz genau das - eine TextBox enthält von Nautru aus *immmer* Text - im Tabellenblatt willst Du aber nach Zahlen sortieren. Daher musst Du die Inhalte der Textboxen beim Einfüllen in die Zellen in einen Zahlenwert umwandeln. Dazu kenne ich den Code den Du verwendest nicht, nehme aber an, dass es sowas in der Art hier ist:

Range("A12).Value = TextBox1.Text

Das gehört korrekt umgeschirieben so:

Range("A12).Value = CDbl(TextBox1.Text)

So klappt dann auch das sortieren korrekt…

Ich habe die Zahlen mal direkt in die Tabelle eingegeben, dann
sortiert er richtig nach Serie 4+3.

…wie Du hier netterweise gleich selbst bestätigst.

2+1 nicht. Da geht die
Zeile mit dem höheren Wert lediglich einen Platz nach oben.

Dann sind nicht alle Werte korrekt umgewandelt worden und einige (die zu oberst stehen bleiben ) sind noch immer als Text in den Zellen enthalten. (Excel zeigt sich da beim Umformatieren mitunter etwas störrisch).

Hast Du die Mappe die ich verlinkt habe mal runtergeladen und getestet?
Ich bin der Ansicht, dass dort alles korrekt funktioniert wenn in allen Spalten Werte eingetragen sind.

Sollte Deine Energie erschöpft sein, bedanke ich mich für
deine Mühe.

Nein, kein Problem, wie gesagt ist ‚Geduld‘ mein zweiter Vorname. ;-9
Hier mein Vorschlag:

Du stellst deine Original-Mappe zur Verfügung und beschreibst ausführlich was darin wie und wann gemacht wird. Anschliessend können wir konstuktive ‚Codekritik‘ betreiben und versuchen, das Ganze aus solide Beine zu stellen. Dann klappt auch das Sortieen und Du hast am Ende viel weniger (dafür aber effizienteren) Code in der Mappe drin.

Wenn wir das Ganze hier bei W-W-W tun, dann haben auch künftige Mitleser einen praktischen Nutzen davon (und auch andere Spezis können sich an der Umstrukturierung beteiligen, was dir ebenfalls zugute kommt).

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Grüezi Thomas,

Sorry für meine Frust-Gedanken von gestern Nacht, aber
irgendwie hatte ich den Eindruck, dass wir uns nur im Kreis
drehen und die Damo-Mappen immer wieder anders aussehen.

und, sind diese Frust-Gedanken jetzt weg *Interessiert schau*

Ich krieg die ja schon als Unbeteiligter wenn ich in der Beitragsfolge mitlese wie oft du schon nachfragst/bittest daß da endlich mal gescheites Datenmaterial rüberwächst.

25 Beiträge zu einem läppischen Sortierproblem zeugen doch schon sehr von ähem Kommunikationsstörungen :smile:)
Vielleicht hilft da nur die Brechstange. Du mir geben korrekte Beispielmappe oder ich nix mehr Lust dir helfen.

andere Spezis können sich an der Umstrukturierung beteiligen,
was dir ebenfalls zugute kommt).

Nene, ich bin da nicht geduldig genug in dem Fall *gg*

Gruß
Reinhard

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo Thomas,

hier die komplette Mappe.

http://www.hostarea.de/server-07/Juli-baea10ba68.xls

Gruß Skaletti!

Grüezi Skaletti

hier die komplette Mappe.

http://www.hostarea.de/server-07/Juli-baea10ba68.xls

Fein, die Mappe habe ich jetzt.

Lieferst Du bitte auch die schon vorhin erbetene Beschreibung noch nach?
Es ist immer sehr schwierig nachzuvollziehen was wo wann wie geschehen soll, wenn man die Hintergründe nicht kennt.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hi Thomas,
werde mal versuchen das wichtigste zu erklären.
In der Tabelle2 „Anmeldung“ werden die Sportler für ein Turnier aufgenommen. Zuständig dafür ist die UserForm1 (CommandButton „Anmeldung Schützen“). Gleichzeitig gehen die Daten in die Tabelle4 „Ergebniserfassung“. In Tabelle2 ist weiterhin der CB „Mannschaften anlegen“. Hier wird die UserForm 2 aufgerufen mit der die Mannschaften angelegt werden und die Daten in die Tabelle3 „Mannschaften“ als Gesamtübersicht, und in die jeweilige Mannschaftstabelle übertragen werden. Die Sportler werden in die TextBoxen geladen durch Eingabe der Startnummer. Wohin die Daten gehen sollen wird durch den Aufruf der Klassen in den ComboBoxen bestimmt. Das gilt für jede UserForm außer Nr.5.
UserForm 5 wird auch in Tabelle2 „Anmeldung“ aufgerufen mit dem
CB „Startkarte Drucken“.

Nun kommen wir zum wichtigsten für dich. In der Tabelle4"Ergebniserfassung" wird mit dem CB „Ergebnis Erfassen“ die UserForm4 aufgerufen.
Hier geschied folgendes: Zeile mit dem Sportler markieren, UserForm aufrufen,Daten des Sportlers sind jetzt in der UserForm, Ergebnisse der Serien eintragen, und mit dem Aufruf der Klasse in den ComboBoxen bestimmen in welche Einzeltabelle die Daten komplett übertragen werden sollen, und in welche Mannschaftstabelle das Ergebnis gesendet werden soll. Das Ergebniss wird auch noch in die Tabelle4 „Ergebniserfassung“ übertragen.(3-fache Sicherheit.)

Alle Daten kann man anhand der Startnummern für eine Korrektur überschreiben.

UserForm3 „Mannschaft ändern“ hat nichts mit den Einzeltabellen zu tun.

Wie du gesehen hast habe ich die Makros mit Kommentaren versehen, ich hoffe das hilft dir etwas.
Jetzt hoffe ich das diese Erklärungen verständlich genug sind.

Gruß Skaletti!

Grüezi Skaletti

Wie du gesehen hast habe ich die Makros mit Kommentaren
versehen, ich hoffe das hilft dir etwas.
Jetzt hoffe ich das diese Erklärungen verständlich genug sind.

Ja, nun wird langsam ein Schuh draus… :wink:

Ich sehe auch, dass Du den Code soweit ergänzt und verändert hast, das ist gut so.

Da Du das Sortieren bei jedem Eintragen ins Tabellenblatt ablaufen lässt (ist das wirklich notwendig oder würde es nicht beim Ansehen desselbe reichen?) muss der Sortier-Code noch angepasst und sauber referenziert werden:

Private Sub Workbook\_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If InStr(1, Sh.Name, "Einzel") \> 0 Then
 With Sh
 .Range("C3:J52").Sort Key1:=.Range("G3"), \_
 Order1:=xlDescending, \_
 Key2:=.Range("F3"), \_
 Order2:=xlDescending, \_
 Key3:=.Range("E3"), \_
 Order3:=xlDescending, \_
 Header:=xlNo
 .Range("C3:J52").Sort Key1:=.Range("I3"), \_
 Order1:=xlDescending, \_
 Key2:=.Range("H3"), \_
 Order2:=xlDescending, \_
 Header:=xlNo
 End With
End If
End Sub

Das eigentliche Problem liegt aber beim Eintragen der Werte in die Zellen. Du wandelst die Werte nicht konsequent in Zahlen um - an einigen Stellen im Code tust Du es, hier aber leider nicht. :frowning:

Passe den Code in Userform4 wie folgt an, dann sollte es klappen - bei meien Tests jedenfalls tate es dies:

 With wksKlasse
 lngZeile = wksKlasse.Cells(.Rows.Count, 3).End(xlUp).Row + 1
 wksKlasse.Cells(lngZeile, 10).Value = CInt(Me.TextBox1)
 wksKlasse.Cells(lngZeile, 3).Value = Me.TextBox2
 wksKlasse.Cells(lngZeile, 4).Value = Me.TextBox3
 wksKlasse.Cells(lngZeile, 5).Value = CDbl(Me.TextBox4)
 wksKlasse.Cells(lngZeile, 6).Value = CDbl(Me.TextBox5)
 wksKlasse.Cells(lngZeile, 7).Value = CDbl(Me.TextBox6)
 wksKlasse.Cells(lngZeile, 8).Value = CDbl(Me.TextBox7)
 wksKlasse.Cells(lngZeile, 9).Value = CDbl(Me.TextBox8)
End With

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -
1 Like

Guten Morgen Thomas,
es funzt alles hervorragend.
Entschuldige bitte meine etwas zu lange Leitung bei dieser Sache,
werde in Zukunft genau befolgen was vom Helfer geschrieben wird.
Habe wieder viel dazugelernt.

Die Sortierungen sollen schon bei jeder Eingabe erfolgen, da die Tabellen in einer PowerPoint Presentation laufen mit einer immer aktuelle Verknüpfung durch DataPoint.

Vielen Dank für deine Hilfe und ausdauernde Unterstützung.

Vielleicht nützt diese Sache einigen im Forum, man könnte allerdings
ein paar Antworten löschen.(Oder was meint Reinhard dazu)

Gruß Skaletti!

Grüezi Skaletti

Guten Morgen Thomas,
es funzt alles hervorragend.

Na, das freut mich doch sehr, dass wir diese Kuh vom Eis gebracht haben :smile:

Entschuldige bitte meine etwas zu lange Leitung bei dieser
Sache,
werde in Zukunft genau befolgen was vom Helfer geschrieben
wird.
Habe wieder viel dazugelernt.

Das ist fein und letztlich auch das Ziel dieses Forums hier.

Das mit der langen Leitung und den Bäumen und dem Wald kenne ich selber sehr gut. Es ist manchmal nicht einfach eine einmal eingeschlagene Richtung zu verlassen und einen anderen Weg einzuschlagen.

Die Sortierungen sollen schon bei jeder Eingabe erfolgen, da
die Tabellen in einer PowerPoint Presentation laufen mit einer
immer aktuelle Verknüpfung durch DataPoint.

Ok, ja das leuchtet ein. Daher ist die gesuchte Lösung auch angebracht, denke ich.

Vielleicht nützt diese Sache einigen im Forum, man könnte
allerdings
ein paar Antworten löschen.(Oder was meint Reinhard dazu)

Löschen könnte höchstens ein Mod hier - aber festzulegen was relevant ist und was nicht dürfte nicht ganz einfach sein.
Daher wird die Diskussion wohl so wie sie ist ins Archiv wandern.


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo,

Vielleicht nützt diese Sache einigen im Forum, man könnte
allerdings
ein paar Antworten löschen.(Oder was meint Reinhard dazu)

ein paar Antworten aus dem Strang löschen bringt nicht viel, die Zeilen bleiben dabei erhalten, sind nur nicht mehr anklickbar und sorgen dann für Irritationen.

Ich denke, wir lassen das besser komplett so stehen, dann bleibt der Strang übersichtlich und kann eventuell auch anderen noch nützlich sein.

Gruß Rainer

[MOD]

Grüezi Rainer

Vielleicht nützt diese Sache einigen im Forum, man könnte
allerdings
ein paar Antworten löschen.(Oder was meint Reinhard dazu)

ein paar Antworten aus dem Strang löschen bringt nicht viel,
die Zeilen bleiben dabei erhalten, sind nur nicht mehr
anklickbar und sorgen dann für Irritationen.

Ich denke, wir lassen das besser komplett so stehen, dann
bleibt der Strang übersichtlich und kann eventuell auch
anderen noch nützlich sein.

Danke fürs Einhaken; ich sehe das auch so.


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo Thomas,

bei dieser Frage so weit unten musste ich mich einfach mal melden. Nicht daß Jemand denkt, ich lese hier nicht mehr mit. :smile:

Danke für Deine Geduld und die Lösung des Problems!

Gruß Rainer