Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
864to868
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
864to868
864to868
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Rangliste erstellen

Rangliste erstellen
02.05.2007 12:45:32
Kasimir
Hallo Leute,
ich hänge an einer Aufgabe. Über den nachfolgenden Code erhöhe ich über ein Textfeld in einer UserForm die Rundenzahl einzelner Teilnehmer.
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Dim Startnummer As Integer, Zähler As Integer, i As Integer If KeyCode = 13 Then Zähler = 0 Startnummer = TextBox1 If Startnummer = Startnummer Then Cells(Startnummer + 2, 3) = Cells(Startnummer + 2, 3) + 1 End If With TextBox1 .SelStart = 0 .SelLength = Len(TextBox1.Text) End With End If End Sub


Das funktioniert soweit auch ganz gut. Nur jetzt kann es vorkommen, dass Teilnehmer sich in der gleichen Runde befinden. Ich würde jetzt gerne noch in Spalte D erfassen, wer als 1. die Runde x erreicht hat, wer als 2. usw. Das Ganze sollte sich ständig aktualisieren. Was ich damit meine? Ein Beispiel:
Teilnehmer 1 erreicht als 1. die Runde 10. Danach erreicht der Teilnehmer 3 die 10. Runde. Nun soll in Spalte D bei Teilnehmer 1 die Zahl 1 erscheinen und bei Teilnehmer 3 die Zahl 2. Jetzt kommt Teilnehmer 2 übers Ziel und hat ebenfalls 10 Runden auf seinem Konto. In Spalte D bei Teilnehmer 2 soll die Zahl 3 erscheinen. In der nächsten Runde kommt aber Teilnehmer 3 als 1. über die Ziellinie. In Spalte D soll nun bei Teilnehmer 3 keine Zahl mehr erscheinen, da er im Moment der Einzige ist, der Runde 11 erreicht hat. Es soll erst wieder eine Zahl in Spalte D erscheinen, wenn ein weiterer Teilnehmer die Runde 11 erricht. Gleichzeitig muss aber die Zahl in Spalte D bei Teilnehmer 1 und 2 angepasst werden. Das würde hier bedeuten, in Spalte D bei Teilnehmer 1 bleibt die Zahl 1 stehen, da er der 1. bei Runde 10 war. Bei Teilnehmer 2 muss aber die Zahl 3, weil er ja als 3. die Runde 10 erreichte, in die Zahl 2 geändert werden, da ja der Teilnehmer, der als 2. die Runde 10 erreicht hat, hier also Teilnehmer 3, die Runde 11 als 1. erreicht hat und somit aus dem Ranking von Runde 10 heraus fällt und daher Teilnehmer 2 die Zahl 2 für Runde 10 erhält
Oh man, ich hoffe, es hat überhaupt jemand verstanden, was ich mit meinem geschriebenen zum Ausdruck bringen möchte. Bei Fragen bitte melden, ich werde versuchen die Nachfragen zu beantworten.
Ziel ist es auf jeden Fall, eine Auflistung zu erhalten, aus der man sehen kann, wer 1, wer 2, wer 3. usw. wird. Da eben auch mehrere Teilnehmer die gleiche Rundenzahl haben können muss hier ausgewertet werden, wer als 1., wer als 2., wer als 3. usw. diese Runden erreicht hat. Nachfolgend noch ein Bild vom Aufbau des Tabellenblattes.

Rundeneingabe
 ABCD
1Altersklasse16 - 21  
2Läufer NameStartnummerRundenzahlEinlauf
3Teilnehmer 1113 Runden 
4Teilnehmer 2218 Runden 
5Teilnehmer 3316 Runden 
6Teilnehmer 4410 Runden 
7Teilnehmer 5511 Runden 
8Teilnehmer 6610 Runden 
9Teilnehmer 7711 Runden 
10Teilnehmer 8810 Runden 
11Teilnehmer 9912 Runden 
12Teilnehmer 101013 Runden 
13Teilnehmer 111115 Runden 
14Teilnehmer 121217 Runden 
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Ich hoffe, jemand hat die Muße mir da weiterzuhelfen. Bin für jeden Lösungsweg dankbar.
Danke Euch allen,
Kasimir

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Rangliste erstellen
03.05.2007 06:40:00
Mustafa
Hallo Kasimir,
der Code so wie er da steht funktioniert auf der abgebildeten Tabelle so mal gar nicht.
So schon eher :
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Dim Startnummer As Integer, Zähler As Integer, i As Integer If KeyCode = 13 Then Zähler = 0 Startnummer = TextBox1 If Startnummer = Startnummer Then Cells(Startnummer + 2, 3) = CInt(Left(Cells(Startnummer + 2, 3), Len(Cells(Startnummer + 2, 3)) _ - 7)) + 1 & " Runden" End If With TextBox1 .SelStart = 0 .SelLength = Len(TextBox1.Text) End With End If End Sub


Für den Rang hatte ich noch keine Zeit was zu überlegen, werde mich aber heute abend mal drangeben und was austüfteln, falls nicht schon jemand anderes was gefunden hat.
Viele Grüße aus dem viel zu warmen Köln.

Anzeige
AW: Rangliste erstellen
03.05.2007 08:35:00
Kasimir
Hallo Mustafa,
danke Dir für Deine Antwort. Der Code funktioniert schon. Das Wort "Runden" braucht nicht herausgefiltert werden, da dieses Wort in dem benutzerdefinierten Format (0" Runden") der Zellen steht und somit automatisch sobald eine Zahl in der Zelle erscheint, angezeigt wird. Daher funktioniert mein Code schon, hatte ich ja auch geschrieben. Trotzdem danke, dass Du Dir die Mühe gamacht hast, den Code anzupassen.
Super wäre, wenn Dir da etwas einfallen würde. Ich selber bin auch am tüfteln. Tue mich aber schwer an dem neuen Durchnummerieren des Einlaufes. Nachfolgend mal der Code, den ich bis jetzt habe.

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim Startnummer As Integer, Zähler As Integer, i As Integer
Dim Rangzähler As Integer, Position As Integer
If KeyCode = 13 Then
Zähler = 0
Startnummer = TextBox1
If Startnummer = Startnummer Then
Cells(Startnummer + 2, 3) = Cells(Startnummer + 2, 3) + 1
End If
For i = 3 To Range("A65536").End(xlUp).Row
If Cells(Startnummer + 2, 3) = Cells(i, 3) Then
Zähler = Zähler + 1
End If
Next
Cells(Startnummer + 2, 4) = Zähler
Rangzähler = 0
If Zähler >= 2 Then
For i = 3 To Range("A65536").End(xlUp).Row
If Cells(Startnummer + 2, 3) = Cells(i, 3) Then
Rangzähler = Rangzähler + 1
If Rangzähler = 1 And Startnummer + 2  i And Cells(i, 4) = "" Then
Cells(i, 4) = Rangzähler
End If
End If
Next
Cells(Startnummer + 2, 4) = Rangzähler
End If
With TextBox1
.SelStart = 0
.SelLength = Len(TextBox1.Text)
End With
End If
End Sub


Eventuell kannst Du oder jamnd anderes den weiter verwenden?
Nochmal danke für die Hilfe,
Kasimir

Anzeige
AW: Rangliste erstellen
07.05.2007 01:02:00
Mustafa
Hallo Kasimir,
Auch wenn es etwas gedauert hat, habe ich, glaub ich zumindest, eine Lösung gefunden:
Hier kannst du mal in der Beispiel Mappe schaun:
https://www.herber.de/bbs/user/42297.xls
Eine Rückmeldung ob es Hilft wäre sehr nett.
Viele Grüße aus Köln.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige