Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1452to1456
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Rangliste erstellen

Rangliste erstellen
31.10.2015 16:10:57
Jürgen
Hallöchen,
ich habe im Forum schon mal gesucht, aber leider nichts Passendes gefunden.
Mein Problem:
Nach einem Turnier ergibt sich eine Rangliste (Rangliste) aus den erreichten Punkten (1. Turnier)
Eine Serie besteht aus 6 Turnieren.
Nach dem 2. Turnier sollen die Punkte (aus 2. Turnier) per Button o.Ä. in die Rangliste an entsprechender Stelle übernommen werden.
Die Punkte müssen den bekannten Spielern in der Rangliste zugeordnet werden. Neue Spieler (im Beispiel in ROT) sollen (mit erreichten Punkten) hinzugefügt werden.
Spieler aus der Rangliste die keine "neuen" Punkte erzielt haben erhalten 0 Punkte (lässt sich aber auch manuell nachtragen)
Sortiert wird später nach der Gesamtpunktzahl und bei Punktgleichheit nach der jeweils höchsten Einzelpunktzahl (1P bis 6P).
Die Tabellen der künftigen Turniere sind normalerweise leer, da noch keine Punkte erzielt worden.
Die Sortierung kann ich später einfügen, aber wie bekomme ich die Punkte und Spieler kopiert?
Auch sollten die bislang erzielten Punkte nicht versehentlich überschrieben werden.
https://www.herber.de/bbs/user/101163.xlsx
Vielen Dank für Eure Hilfe
Jürgen

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Rangliste erstellen
31.10.2015 17:22:15
Sepp
Hallo Jürgen,
und warum nicht per Formel?
Rangliste

 ABCDEFGHIJK
6RanglisteStand:04.10.2015
7           
8PlatzName, VornameVerein1. Turnier2. Turnier3. Turnier4. Turnier5. Turnier6. Turnier   Gesamt
91Name1, Vorname1Verein4201015202020 105
102Name2, Vorname2Verein4151520151515 95
113Name3, Vorname3Verein4102010101010 70
124Name4, Vorname4Verein4888888 48

Formeln der Tabelle
ZelleFormel
D9=WENNFEHLER(INDEX('1. Turnier'!$D$2:$D$66;VERGLEICH($B9;'1. Turnier'!$B$2:$B$67;0)); "")
E9=WENNFEHLER(INDEX('2. Turnier'!$D$2:$D$66;VERGLEICH($B9;'2. Turnier'!$B$2:$B$67;0)); "")
F9=WENNFEHLER(INDEX('3. Turnier'!$D$2:$D$66;VERGLEICH($B9;'3. Turnier'!$B$2:$B$67;0)); "")
G9=WENNFEHLER(INDEX('4. Turnier'!$D$2:$D$66;VERGLEICH($B9;'4. Turnier'!$B$2:$B$67;0)); "")
H9=WENNFEHLER(INDEX('5. Turnier'!$D$2:$D$66;VERGLEICH($B9;'5. Turnier'!$B$2:$B$67;0)); "")
I9=WENNFEHLER(INDEX('6. Turnier'!$D$2:$D$66;VERGLEICH($B9;'6. Turnier'!$B$2:$B$67;0)); "")


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Gruß Sepp

Anzeige
AW: Rangliste erstellen
02.11.2015 16:14:21
Jürgen
Hallo Sepp,
danke für den Hinweis mit der Formel!
Die bezieht sich jedoch nur auf bekannte Namen, oder?
Was ist mit den Spielern, die nach dem 2. Turnier hinzu kommen?
Wie "erkenne" ich die "Neulinge"?
Gruß
Jürgen

AW: Rangliste erstellen
02.11.2015 20:15:04
Jürgen
Hallo Jürgen,
ich denke dafür musst du nur die Namen Gesamtübersicht hinzufügen und die Formeln erweitern.
Beim Turnier 1 erhalten diese dann "0" Punkte, da der "Wennfehler" greift.
Gruß
Jürgen

AW: Rangliste erstellen
03.11.2015 15:54:10
Jürgen
Hallo Jürgen,
dazu müsste ich erst einmal wissen wer "neu" ist. Im Beispiel sind es nur zwei Namen, können aber auch 25 sein.
Danke
Jürgen

Anzeige
AW: Rangliste erstellen
04.11.2015 17:01:12
Jürgen
Danke Sepp,
sieht gut aus!
Wenn ich nach dem ersten Turnier die Punkte für das zweite Turnier hinzufüge (3 bis 6 bleiben leer)und aktualisiere, "zerschießt" es mir den Name48, Vorname48 aus Verein5 (letzter aus 1. Turnier).
Muß ich erst alle Daten löschen bevor ich aktualisiere?
Vielen Dank
Jürgen

Anzeige
AW: Rangliste erstellen
04.11.2015 19:59:04
Sepp
Hallo Jürgen,
kann ich nicht bachvollziehen. Was wird zerschossen? Du hast schon beachtet, das der Code die Tabelle nach dem Rang sortiert?
Gruß Sepp

AW: Rangliste erstellen
06.11.2015 09:49:43
Jürgen
Hallo Sepp,
einfach mal aktualisiern, dann steht dort eine "0" (Null) anstatt Name48, Vorname48.
Bei einem Reset vorher passiert das nicht.
Jürgen

AW: Rangliste erstellen
06.11.2015 20:53:32
Sepp
Hallo Jürgen,
hast recht und ich habe den Fehler gefunden.
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Const cstrPassword As String = "geheim" 'Passwort für Blattschutz

Private Sub aktualisieren()
Dim objSh As Worksheet, rng As Range
Dim lngR As Long, lngC As Long, lngNext As Long, varRet As Variant
Dim bMatch As Boolean

On Error GoTo ErrorHandler

With Application
  .ScreenUpdating = False
  .EnableEvents = False
  .DisplayAlerts = False
End With

lngNext = Application.Max(8, Cells(Rows.Count, 2).End(xlUp).Row)

Me.Unprotect cstrPassword

For Each objSh In ThisWorkbook.Worksheets
  If objSh.Name Like "*. Turnier" Then
    varRet = Application.Match(objSh.Name, Me.Rows(8), 0)
    If IsNumeric(varRet) Then
      lngC = varRet
      With objSh
        For lngR = 2 To Application.Max(2, .Cells(.Rows.Count, 2).End(xlUp).Row)
          If .Cells(lngR, 2) <> "" Then
            Set rng = Me.Columns(2).Find(What:=.Cells(lngR, 2), LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False, SearchFormat:=False)
            If Not rng Is Nothing Then
              bMatch = True
              If rng.Offset(0, 1) = .Cells(lngR, 3) Then
                Cells(rng.Row, lngC) = .Cells(lngR, 4).Value
              Else
                bMatch = False
              End If
            Else
              bMatch = False
            End If
            If Not bMatch Then
              lngNext = lngNext + 1
              Cells(lngNext, 2) = .Cells(lngR, 2)
              Cells(lngNext, 3) = .Cells(lngR, 3)
              Cells(lngNext, lngC) = .Cells(lngR, 4)
            End If
          End If
        Next
      End With
    End If
  End If
Next

Range("K6") = Date & Chr(10) & Time
Range("A9:A" & lngNext).FormulaR1C1 = "=RANK(RC[10],R9C11:R61C11)"
Range("K9:K" & lngNext).FormulaR1C1 = "=SUM(RC[-7]:RC[-2])"
Range("N9:S" & lngNext).FormulaR1C1 = "=IF(RC[-10]<>0,LARGE(RC4:RC9,COLUMN(R1C[-13])),0)"
On Error Resume Next
Set rng = Nothing
Set rng = Range(Cells(9, 4), Cells(lngNext, lngC)).SpecialCells(xlCellTypeBlanks)
If Not rng Is Nothing Then rng.Value = 0
On Error GoTo 0
Range("A8:K" & lngNext).Sort Key1:=Range("K8"), Order1:=xlDescending, Header:=xlYes
Me.Cells.Locked = True
Me.Protect cstrPassword

ErrorHandler:

With Err
  If .Number <> 0 Then
    MsgBox "Fehler in Prozedur:" & vbTab & "'aktualisieren'" & vbLf & String(60, "_") & _
      vbLf & vbLf & IIf(Erl, "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & _
      "Fehlernummer:" & vbTab & .Number & vbLf & vbLf & "Beschreibung:" & vbTab & _
      .Description & vbLf, vbExclamation + vbMsgBoxSetForeground, _
      "VBA - Fehler in Prozedur - aktualisieren"
    .Clear
  End If
End With

On Error GoTo 0

With Application
  .ScreenUpdating = True
  .EnableEvents = True
  .DisplayAlerts = True
  .StatusBar = False
End With

Set rng = Nothing
End Sub

Private Sub reset()
If MsgBox("Wirklich alle Daten löschen?", vbQuestion + vbYesNo + vbDefaultButton2) = vbYes Then
  Me.Unprotect cstrPassword
  Range("A9:K" & Rows.Count) = ""
  Range("N9:S" & Rows.Count) = ""
  Range("K6") = ""
  Me.Cells.Locked = True
  Me.Protect cstrPassword
End If
End Sub

Gruß Sepp

Anzeige
AW: Rangliste erstellen
09.11.2015 10:14:38
Jürgen
DANKE

AW: Rangliste erstellen
09.11.2015 11:04:31
Jürgen
Danke Sepp,
ich habe die Sortierung um 6 Keys erweitert (Bereich bis "S")
Den 4. Key (P8) findet er aber nicht und gibt eine Fehlermeldung.
Die Sortierung soll bei gleicher Gesamtzahl nach Höhe der erziehlten Punkte erfolgen (1P bis 6P)
Range("A8:S" & lngNext).Sort Key1:=Range("K8"), Order1:=xlDescending, Key2:=Range("N8"), Order2:=xlDescending, Key3:=Range("O8"), Order3:=xlDescending, Key4:=Range("P8"), Order4:=xlDescending, Key5:=Range("Q8"), Order5:=xlDescending, Key6:=Range("R8"), Order6:=xlDescending, Key7:=Range("S8"), Order7:=xlDescending, Header:=xlYes
Was ist mein Fehler?
Vielen Dank
Jürgen
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige