Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Tabelle per Makro sortieren
#21
Er zeigt mir Debuggen an :

lz1=.Range("A2").End(xlDown).Row

In der Hauptexcel befinden sich die Namen und Punkte unter B2 bez. C2

Das hatte ich in deiner Formel auch geändert.

[size=1]End Sub


End Sub
[/size]
Antworten Top
#22
So ich hab jetzt mal soweit alles reduziert das ich es Schicken kann.

Es dreht sich wie gesagt um das Blatt Rechnen und die Jahrstabelle.

Lg


Angehängte Dateien
.xlsm   Würfeln SVL Test2.xlsm (Größe: 1,88 MB / Downloads: 2)
Antworten Top
#23
Hallöchen,

der Gast hat ja schon in seinem Nachtrag auf das Problem mit den Tabellennamen hingewiesen.
Im Code steht nun

With Tabelle1 'Sheets("Jahrestabelle")

Wenn Du im VBA-Editor bist, siehst Du im Projektexplorer für jedes Blatt 2 Namen, in etwa so

bei einer neuen Datei:
Tabelle1 (Tabelle1)

bei geändertem Blattname z.B.:
Tabelle1 (Jahrestabelle)

Du müsstest nun im PE schauen, ob vor dem gewünschten Blatt auch Tabelle1 steht, wenn nicht, den Code entsprechend ändern ... Tabelle1 gibt es in der aktiven Mappe anscheinend nicht.

... hab gerade gesehen, dass Du, während ich geschrieben habe, eine Antwort gepostet hast. wie ich schon schrieb, Tabelle1 gibt es nicht Sad
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#24
Bei mir seht nirgendwo Tabelle 1 

wie muss ich den Code jetzt ändern Sad stehe auf dem schlauch

ok er führt nun den Makro aus 

allerdings passiert hier das gleiche alle leeren bez. 0 zeilen stehen oben

Ich werde noch verrückt mit der Tabelle.

Wie gesagt alle anderen Tabellen funktionieren auch wunderbar nur die Jahrestabelle mit den Kommazahlen eben nicht.
Antworten Top
#25
Hallöchen,

wenn die Nullen vor dem Sortieren oben stehen bleiben sie auch dort.
Unterdrücke die Nullen, z.B. mit =WECHSELN(Rechnen!M60;0;"").
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#26
Hi,

die Datei ist wirklich ein schönes Beispiel dafür, wie man etwas optisch "schönes" machen will und dabei jeglichen Grundsatz einer vernünftigen Datenhaltung und Aufbereitung über den Haufen wirft. Gefühlt hunderte feste Verknüpfungen auf andere Zellen im Stile von =Blatt1!C26 - so dass man am Ende nicht mehr weiß, wie was zusammenhängt. Dass da Ende keiner druchblickt muss nicht verwundern.

Was kannst du tun? z.B. endlich meinen Rat befolgen und bei allen Formeln im Stile von =WENN(A1="";"";B1/C1) durch =WENN(A1="";0;B1/C1) oder sogar =WENN(A1="";;B1/C1) ersetzen. Zumindest in den Spalten, die sortiert werden sollen. In deinem konkreten Fall also in Rechnen!L3 statt =WENN(I3=0;"";J3/K3) solltest du =WENN(I3=0;0;J3/K3) oder sogar =WENN(I3=0;;J3/K3) verwenden - und die Formel runter ziehen.
Wenn du dich mit VBA offenkundig so schlecht auskennst, solltest du darauf verzichten und SORTIEREN & Co. verwenden. Dazu verwendest du in Jahrestabelle folgende Formeln:
A2: =RANG.GLEICH(C2:C41;C2:C41)
B2: =SORTIERENNACH(Rechnen!I3:I42;Rechnen!L3:L42;-1;Rechnen!I3:I42;1)
C2: =SORTIEREN(Rechnen!L3:L42;1;-1)

Noch eine Möglichkeit: Lass die Formeln im Blatt Rechnen und verwende in Jahrestabelle folgende Formeln:
A2: =RANG.GLEICH(C2:C41;C2:C41)
B2: =SORTIERENNACH(Rechnen!I3:I42;1/Rechnen!L3:L42;1;Rechnen!I3:I42;1)
C2: =SORTIERENNACH(Rechnen!L3:L42;1/Rechnen!L3:L42;1)
Wieso das funktioniert? Weil du nun aufsteigend nach den Kehrwerten sortierst.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
[-] Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:
  • shift-del
Antworten Top
#27
Hallo

ich habe mir das Makro noch mal angeschaut, falls die Nullen mitten in der Liste auftauchen sollten.
Die koirrigierte Version sortiert jetzt einwandfrei, weil ich zuerst alle Nullwerte ans Listenende stelle.

mfg Gast 123

Code:
Sub Tabelle_Jahr1()
Dim j As Long, lz1 As Long
Application.ScreenUpdating = False
With Tabelle1 'Sheets("Jahrestabelle")
    lz1 = .Range("A2").End(xlDown).Row
    'Alle Nullen ans Listenende stellen
    .Range("A2:E" & lz1).Sort Key1:=.Range("A2"), Order1:=xlDescending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    '1. Null in der Tabelle suchen
    For j = 2 To lz1
        If .Cells(j, 1) = "" Or .Cells(j, 1) = 0 Then Exit For
    Next j
    'Sortierbereich ohne Null Zeilen sortieren
    .Range("A2:E" & j - 1).Sort Key1:=.Range("B2"), Order1:=xlDescending, Key2:=.Range("A2"), Order2:=xlDescending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End With
End Sub


Angehängte Dateien
.xlsm   Beispiel - Würfelspiel sortieren.xlsm (Größe: 22,08 KB / Downloads: 0)
Antworten Top


Gehe zu:


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