Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Image
BildScreenshot zu Image Image-Seite mit Beispielarbeitsmappe aufrufen

Sortien nach gesamt und Anzahl | Herbers Excel-Forum


Betrifft: Sortien nach gesamt und Anzahl von: Sankt
Geschrieben am: 15.01.2010 14:42:08

Hallo,
ich lasse eine Tabelle automatisch nach Gesamt sortieren, soweit so gut nun kommt aber dazu das sich die Spieler mit der geringeren Anzahl der ausgefüllten felder nachunten sortieren sollen.

https://www.herber.de/bbs/user/67243.xls

Also die mit der meisten Anzahl sollen sich nach Gesamt sortieren und oben stehen
Die Spieler bei denen wo die Anzahl 0 ist sollen unten stehen bleiben. Sortiert wird von klein nach groß

Über eure Hilfe würde ich mich freuen.

Sankt

  

Betrifft: AW: Sortien nach gesamt und Anzahl von: Björn B.
Geschrieben am: 15.01.2010 14:49:42

Hallo,

bau eine weitere Spalte ein, die dir die Anzahl der Einträge gibt.
Dann sortierst du erst nach Anzahl Einträge und dann nach gesamt.
Fertig.

Gruß
Björn B.


  

Betrifft: AW: Sortien nach gesamt und Anzahl von: Sankt
Geschrieben am: 15.01.2010 23:16:41

Super,
das klappt.

Nun würde ich gerne, das sich das Automatisch sortiert.

Erst Spalte O Absteigend, dann spalte L Aufsteigend.

Kann mir jemand dafür den VBA Formel für verraten bitte.

Und würde das dann mit Mehreren Tabellen auf einem Blatt funktionieren.

Gruß
Sankt


  

Betrifft: AW: Sortien nach gesamt und Anzahl von: fcs
Geschrieben am: 16.01.2010 16:20:52

Hallo Sankt,

die nachfolgenden Prozeduren führen eine entsprechende Sortierung durch.
Voraussetzung: alle Tabellen haben den gleichen Spaltenaufbau und unterhalb jeder Tabelle muss mindestens eine Leerzeile vorhanden sein, damit die automatische Bestimmung der letzten Zeile einer Tabelle in Spalte O funktioniert.
Für die weiteren Klassen muss du dann jeweils eine Zeile in der Hauptprozedur kopieren und die Adresse der Zelle mit der Klassenbezeichnung anpassen.

In der Sortieranweisung sind als Sortierbezug "K1" und "N1", das ist korrekt so, in der von mir verwendeten Methode muss die zu sortierende Spalte relativ von der linken oberen Zelle des ermittelten Tabellenbereichs angegeben werden.

Gruß
Franz

Sub TabellenSortieren()
  With Worksheets("Tabelle1")
    SortTabelle (.Range("B6")) 'männlich allgemein
    SortTabelle (.Range("B19")) 'weiblich allgemein
  End With
End Sub

Sub SortTabelle(StartZelle As Range)
  'Startzelle ist die Zelle in der die Klasse einer Tabelle steht
  Dim Bereich As Range
  'Tabellenbereich ermitteln ausgehend von der Startzelle
  With StartZelle.Parent
    Set Bereich = .Range(StartZelle.Offset(1, 0), StartZelle.Offset(1, 13).End(xlDown))
  End With
  'Bereich sortieren absteigend nach Punkten, aufsteigend nach Anzahl
  With Bereich
      .Sort Key1:=.Range("K1"), Order1:=xlDescending, _
          Key2:=.Range("N1"), Order2:=xlAscending, Header:=xlNo
  End With
End Sub



  

Betrifft: AW: Sortien nach gesamt und Anzahl von: Klaus-Dieter
Geschrieben am: 16.01.2010 16:14:03

Hallo Sankt,

mit diesem Makro geht das:

Microsoft Excel Objekt Tabelle1

Option Explicit 
Private Sub Worksheet_Change(ByVal Target As Range)
Dim isect As Range
Set isect = Application.Intersect(Target, Range("E7:K15"))
If Not isect Is Nothing Then
Range("E7:O15").Sort Key1:=Range("O7"), Order1:=xlDescending, Key2:=Range("L7") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
:=xlSortNormal
End If
End Sub

[size=8]Code eingefügt mit [url=http://vbahtml.origo.ethz.ch] VBA in HTML 2.0.0.1[/url][/size]

Tabelle1

EFGHIJKLMNO
5Rd.1 Rd. 2 Rd. 3 Rd.4 Rd.5Rd.6Rd.7Ges.ØDiffAnzahl
6
71819191819191913118,7117
82020212118212214320,4347
92222222222222615822,5747
102122302032191816223,14147
11232121222221 13021,6726
1224242421 9323,2534
1324252621 9624,0054
1424252325 9724,2524
15 0 0

Formeln der Tabelle
ZelleFormel
M5=ZEICHEN(216)
L7=SUMME(E7:K7)
M7=WENN(L7=0;"";SUMME(E7:K7)/ANZAHL(E7:K7))
N7=WENN(L7=0;"";MAX(E7:K7)-MIN(E7:K7))
O7=7-ANZAHLLEEREZELLEN(E7:K7)
L8=SUMME(E8:K8)
M8=WENN(L8=0;"";SUMME(E8:K8)/ANZAHL(E8:K8))
N8=WENN(L8=0;"";MAX(E8:K8)-MIN(E8:K8))
O8=7-ANZAHLLEEREZELLEN(E8:K8)
L9=SUMME(E9:K9)
M9=WENN(L9=0;"";SUMME(E9:K9)/ANZAHL(E9:K9))
N9=WENN(L9=0;"";MAX(E9:K9)-MIN(E9:K9))
O9=7-ANZAHLLEEREZELLEN(E9:K9)
L10=SUMME(E10:K10)
M10=WENN(L10=0;"";SUMME(E10:K10)/ANZAHL(E10:K10))
N10=WENN(L10=0;"";MAX(E10:K10)-MIN(E10:K10))
O10=7-ANZAHLLEEREZELLEN(E10:K10)
L11=SUMME(E11:K11)
M11=WENN(L11=0;"";SUMME(E11:K11)/ANZAHL(E11:K11))
N11=WENN(L11=0;"";MAX(E11:K11)-MIN(E11:K11))
O11=7-ANZAHLLEEREZELLEN(E11:K11)
L12=SUMME(E12:K12)
M12=WENN(L12=0;"";SUMME(E12:K12)/ANZAHL(E12:K12))
N12=WENN(L12=0;"";MAX(E12:K12)-MIN(E12:K12))
O12=7-ANZAHLLEEREZELLEN(E12:K12)
L13=SUMME(E13:K13)
M13=WENN(L13=0;"";SUMME(E13:K13)/ANZAHL(E13:K13))
N13=WENN(L13=0;"";MAX(E13:K13)-MIN(E13:K13))
O13=7-ANZAHLLEEREZELLEN(E13:K13)
L14=SUMME(E14:K14)
M14=WENN(L14=0;"";SUMME(E14:K14)/ANZAHL(E14:K14))
N14=WENN(L14=0;"";MAX(E14:K14)-MIN(E14:K14))
O14=7-ANZAHLLEEREZELLEN(E14:K14)
L15=SUMME(E15:K15)
M15=WENN(L15=0;"";SUMME(E15:K15)/ANZAHL(E15:K15))
N15=WENN(L15=0;"";MAX(E15:K15)-MIN(E15:K15))
O15=7-ANZAHLLEEREZELLEN(E15:K15)



Viele Grüße Klaus-Dieter

Klaus-Dieter's Excel und VBA Seite

Online-Excel


Beiträge aus den Excel-Beispielen zum Thema "Sortien nach gesamt und Anzahl"