Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1636to1640
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

Punkteverteilung Turniertabelle

Punkteverteilung Turniertabelle
27.07.2018 06:22:18
Michael
Hallo zusammen,
ich arbeite an einer Tabelle für Turniere in der ich eine UserForm erstellt habe, um die Eingabe der Spielernamen und der Punkte erheblich zu vereinfachen. Die Top 9 jedes Turniers bekommen Punkte (Platz 1=10 Punkte, Platz 2=9Punkte...Platz 9=2 Punkte).
Mein Problem ist nun, dass ich nicht weiß wie ich z.B. dem Textfeld für den Sieger eines Turniers die 10 Punkte zuordnen kann!! Ich möchte also nur die Spielernamen der besten 9 in die Textfelder eintragen (Spielernamen können Zahlen und Sonderzeichen enthalten!) und mit Drücken des CommandButtons die Punkte automatisch in die Liste eintragen lassen.
Makros für die Zusammenführung der Punkte bei doppelten Spielernamen, sowie die alphabetische Reihenfolge bei Punktegleichheit sind bereits vorhanden! (Kann man diese beiden Makros gleichzeitig mit der Übertragung der Spielernamen ausführen lassen?)
Da ich kaum Ahnung von VBA habe, wäre es wirklich super wenn bitte jemand für nur ein Turnier und hierbei auch nur für einen Spieler den VBA-Code schreiben könnte. (B€ispielname1 gewinnt 1. Turnier am 1. Spieltag und bekommt 10 Punkte!)
Ich könnte diesen dann für alle anderen Spieler(Textfelder)/Turniere/Spieltage kopieren und mit entsprechenden Zellbezügen anpassen.
https://www.herber.de/bbs/user/122940.xlsm
Gruß
Michael

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Punkteverteilung Turniertabelle
27.07.2018 07:50:44
Matthias
Hallo
Würde ich ungefähr so machen.
Als Ansatz:
Select Case Spielername_Platz1_Turnier1_Spieltag1
Case Is = Range("D5")
Range("I5") = 10
Case Is = Range("D6")
Range("I6") = 10
Case Is = Range("D7")
Range("I7") = 10
'... usw.
End Select

Außerdem würde ich satt TextBox-Objekte eher ComboBox-Objekte benutzen
So könntest Du über DropDown den entsprechenden Namen auswählen.
Gruß Matthias
AW: Punkteverteilung Turniertabelle
27.07.2018 10:01:00
Michael
Hallo Matthias,
ich glaube das ist noch nicht so ganz das was ich benötige. So wie ich Deinen Code als Laie verstehe, würde ich ja einen ewig langen Code für jedes einzelne Textfeld benötigen. Außerdem wäre es wohl etwas umständlich über DropDown den jeweiligen Namen auszuwählen, wenn sich am Ende des Monats ca. 100 verschiedene Spielernamen in der Tabelle befinden.
Da ich ja bereits ein Makro habe, welches mir doppelte Spielernamen automatisch korrigiert, müsste es doch eigentlich recht einfach sein mit wenigen Codezeilen eine Anweisung zu schreiben mit welcher ich dem jeweiligen Textfeld anweise in welcher Zeile und Spalte die jeweils zugehörigen Punkte eingefügt werden müssen.(Mit entsprechendem Zusatz für die jeweils erste freie Zeile)
Ich schreibe z.B. in Textfeld "Spielername_Platz1_Turnier1_Spieltag1" den Sieger des ersten Turniers des ersten Spieltags (Spalte I) welcher 10 Punkte bekommen soll. Dann müsste der Code doch eigentlich nur lauten: suche mir die erste freie Zeile im Bereich ("D5:D135"), schreibe mir dort den Spielernamen rein den ich in das Textfeld eingegeben habe und schreibe dann die 10 Punkte in die gleiche erste freie Zeile in die entsprechend für Turnier 1 und Spieltag 1 zugehörige Spalte I. Mehr brauche ich nicht!
Selbst wenn ein Spielername in zwei verschiedenen Turnieren/Spieltagen Punkte bekommt ist das kein Problem, da mein Makro die jeweiligen Punkte der doppelten Spielernamen in die entsprechend richtigen Zeilen zusammenfügt.Das klappt auch prima! Ich benötige also nur einen VBA-Code für mein im oben fett geschriebenes Szenario. (Wäre natürlich megaklasse wenn ich einen Spielernamen in ein Textfeld schreibe welcher schon einmal eingetragen wurde, dass dieser nach Eingabe von 3 oder 4 Zeichen automatisch im Textfeld angezeigt wird! Das wäre die Mutter aller VBA-Codes und würde die Pflege der Tabelle nochmals beschleunigen, aber das ist zur Zeit kein muss;-) )
(Wie gesagt ich habe wirklich kaum Ahnung von VBA und es fällt mir sehr schwer mich in solche abstrakten Sachen hineinzudenken.)
Ich glaube aber im fett geschriebenen Absatz ist mir die Darstellung meines Problems einigermaßen gelungen.
Aber schonmal vielen Dank für Deine schnelle Antwort und Deine Mühe Matthias
(Vielleicht hattest Du auch schon die Lösung und ich habs einfach nicht begriffen?!?)
Gruß
Michael
Anzeige
AW: Punkteverteilung Turniertabelle
27.07.2018 10:59:00
Matthias
Hallo
Stand ja drüber "Als Ansatz"
Hier eine Variante für die 9 Plätze
Private Sub CommandButton1_Click()
Dim x&
For x = 5 To 135
Select Case Spielername_Platz1_Turnier1_Spieltag1
Case Is = Range("D" & x)
Range("I" & x) = 10
End Select
Select Case Spielername_Platz_2
Case Is = Range("D" & x)
Range("I" & x) = 9
End Select
Select Case Spielername_Platz_3
Case Is = Range("D" & x)
Range("I" & x) = 8
End Select
Select Case Spielername_Platz_4
Case Is = Range("D" & x)
Range("I" & x) = 7
End Select
Select Case Spielername_Platz_5
Case Is = Range("D" & x)
Range("I" & x) = 6
End Select
Select Case Spielername_Platz_6
Case Is = Range("D" & x)
Range("I" & x) = 5
End Select
Select Case Spielername_Platz_7
Case Is = Range("D" & x)
Range("I" & x) = 4
End Select
Select Case Spielername_Platz_8
Case Is = Range("D" & x)
Range("I" & x) = 3
End Select
Select Case Spielername_Platz_9
Case Is = Range("D" & x)
Range("I" & x) = 2
End Select
Next
End Sub
Gruß Matthias
Anzeige
AW: Punkteverteilung Turniertabelle
27.07.2018 12:17:44
Michael
Hi Matthias,
ich habe Deinen Code mal eingebaut, aber irgendwie haut der mir ab I103 nur 2er von I103 bis I135 rein! (Egal ob ich etwas in ein Textfeld schreibe oder alle 9)
Was mache ich bitte falsch?
Ansonsten finde ich Deinen Code super!!!! Sieht für mich als Laie stimmig aus und wenns bald funktionieren würde, könnte ich problemlos die Zellbezüge etc. entsprechend anpassen!!
Hier die neue Tabelle. Woran könnte es bitte liegen das es noch nicht läuft?
https://www.herber.de/bbs/user/122949.xlsm
Gruß
Michael
Anzeige
könnte man drauf kommen, oder ?
27.07.2018 12:44:22
Matthias
Hallo

Du hast ab Zeile 103 keine Namen mehr in Deiner Liste

Man muss also abfragen, ob die Zelle in Spalte("D") leer ist
oder die Schleife nicht bis 135 laufen lassen, sondern nur bis 102
also
For x = 5 To 102 ;-)
Gruß Matthias
AW: könnte man drauf kommen, oder ?
27.07.2018 13:20:35
Michael
Hi,
wir habe herrlich aneinander vorbeigeredet;-))
Dein Code ist fehlerfrei und funktioniert perfekt! Allerdings nur bei bereits VORHANDENEN Namen;-)
Ich benötige etwas wo auch NEUE noch nicht vorhandene Namen in Spalte D eingetragen werden, wenn man sie in einem Textfeld der UserForm eintippt. "suche mir die erste FREIE Zeile im Bereich..." (Der in fett geschriebene Absatz)
Was muss ich bitte jetzt verändern damit das läuft?
Wenn das alles gleich funktioniert, dann trinke ich nachher ein Bierchen auf Dein Wohl, weil Du mir heute sehr geholfen hast!
Gruß
Michael
Anzeige
AW: könnte man drauf kommen, oder ?
27.07.2018 18:44:53
Matthias
Hallo
Vorschlag wie man es machen könnte:
Habs mal nur für die oberste Textbox erstellt.
https://www.herber.de/bbs/user/122957.xlsm
Gruß Matthias
AW: könnte man drauf kommen, oder ?
28.07.2018 07:46:17
Michael
Hi
vielen Dank für Deinen Vorschlag, aber so kompliziert muss das überhaupt nicht sein. Es würde vollkommen reichen, wenn die Textfelder/Textboxen der UserForm ganz stur die eingetippten Spielernamen in die nächste freie Zeile der Tabelle eintragen(plus die Punkte natürlich). Fertig! Mehr brauche ich nicht!
Denn alles andere erledigt anschließend mein schon vorhandenes "doppelte zusammenfassen" Makro! Es dürfen also ruhig bereits vorhandene Spielernamen in die nächste freie Zeile eingetragen werden! Das Makro transportiert die Punkte des doppelten Eintrags an die richtige Stelle des ersten Eintrags und löscht anschließend den doppelten Eintrag.
Das zweite bereits vorhandene Makro sortiert die Gesamtpunktzahl und ordnet bei Punktgleichheit die Spielernamen alphabetisch.
Könntest Du mir bitte den Code so umändern das die in der Textbox eingetippten Spielernamen in die nächste freie Zeile der Tabelle eingetragen werden? Wenn Du es schaffst das mit dem Drücken des "Punkte eintragen" CommandButtons nicht nur die Spielernamen inkl. Punkte in die Tabelle eingetragen werden, sondern anschließend auch noch das "doppelte zusammenfassen" Makro und am Schluß das "Sortieren" Makro ausgeführt wird, wäre mein Tabelle perfekt!
Gruß
Michael
Anzeige
AW: könnte man drauf kommen, oder ?
28.07.2018 08:57:47
Michael
Hi
vielen Dank für Deinen Vorschlag, aber so kompliziert muss das überhaupt nicht sein. Es würde vollkommen reichen, wenn die Textfelder/Textboxen der UserForm ganz stur die eingetippten Spielernamen in die nächste freie Zeile der Tabelle eintragen(plus die Punkte natürlich). Fertig! Mehr brauche ich nicht!
Denn alles andere erledigt anschließend mein schon vorhandenes "doppelte zusammenfassen" Makro! Es dürfen also ruhig bereits vorhandene Spielernamen in die nächste freie Zeile eingetragen werden! Das Makro transportiert die Punkte des doppelten Eintrags an die richtige Stelle des ersten Eintrags und löscht anschließend den doppelten Eintrag.
Das zweite bereits vorhandene Makro sortiert die Gesamtpunktzahl und ordnet bei Punktgleichheit die Spielernamen alphabetisch.
Könntest Du mir bitte den Code so umändern das die in der Textbox eingetippten Spielernamen in die nächste freie Zeile der Tabelle eingetragen werden? Wenn Du es schaffst das mit dem Drücken des "Punkte eintragen" CommandButtons nicht nur die Spielernamen inkl. Punkte in die Tabelle eingetragen werden, sondern anschließend auch noch das "doppelte zusammenfassen" Makro und am Schluß das "Sortieren" Makro ausgeführt wird, wäre mein Tabelle perfekt!
Gruß
Michael
Anzeige
warum sendest Du das doppelt ? owT
28.07.2018 10:12:29
Matthias
AW: warum sendest Du das doppelt ? owT
28.07.2018 10:30:45
Michael
war auch überrascht das es zwei mal gesendet wurde... um 9 Uhr war ich noch nicht mal am Rechner!!!...und sonst ist niemand hier...kanns mir echt nicht erklären...
wow !
28.07.2018 10:35:45
Matthias
Hallo
Pack mal den Code dazu (UserForm)

Private Sub Spielername_Platz1_Turnier1_Spieltag1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Loletzte&, x&
Loletzte = Cells(Rows.Count, 4).End(xlUp).Row
For x = 5 To Loletzte
If Cells(x, 4) = Spielername_Platz1_Turnier1_Spieltag1 Then Exit Sub
Next
Cells(Loletzte + 1, 4) = Spielername_Platz1_Turnier1_Spieltag1
End Sub
Private Sub Spielername_Platz_2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Loletzte&, x&
Loletzte = Cells(Rows.Count, 4).End(xlUp).Row
For x = 5 To Loletzte
If Cells(x, 4) = Spielername_Platz_2 Then Exit Sub
Next
Cells(Loletzte + 1, 4) = Spielername_Platz_2
End Sub
Private Sub Spielername_Platz_3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Loletzte&, x&
Loletzte = Cells(Rows.Count, 4).End(xlUp).Row
For x = 5 To Loletzte
If Cells(x, 4) = Spielername_Platz_3 Then Exit Sub
Next
Cells(Loletzte + 1, 4) = Spielername_Platz_3
End Sub
Private Sub Spielername_Platz_4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Loletzte&, x&
Loletzte = Cells(Rows.Count, 4).End(xlUp).Row
For x = 5 To Loletzte
If Cells(x, 4) = Spielername_Platz_4 Then Exit Sub
Next
Cells(Loletzte + 1, 4) = Spielername_Platz_4
End Sub
Private Sub Spielername_Platz_5_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Loletzte&, x&
Loletzte = Cells(Rows.Count, 4).End(xlUp).Row
For x = 5 To Loletzte
If Cells(x, 4) = Spielername_Platz_5 Then Exit Sub
Next
Cells(Loletzte + 1, 4) = Spielername_Platz_5
End Sub
Private Sub Spielername_Platz_6_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Loletzte&, x&
Loletzte = Cells(Rows.Count, 4).End(xlUp).Row
For x = 5 To Loletzte
If Cells(x, 4) = Spielername_Platz_6 Then Exit Sub
Next
Cells(Loletzte + 1, 4) = Spielername_Platz_6
End Sub
Private Sub Spielername_Platz_7_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Loletzte&, x&
Loletzte = Cells(Rows.Count, 4).End(xlUp).Row
For x = 5 To Loletzte
If Cells(x, 4) = Spielername_Platz_7 Then Exit Sub
Next
Cells(Loletzte + 1, 4) = Spielername_Platz_7
End Sub
Private Sub Spielername_Platz_8_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Loletzte&, x&
Loletzte = Cells(Rows.Count, 4).End(xlUp).Row
For x = 5 To Loletzte
If Cells(x, 4) = Spielername_Platz_8 Then Exit Sub
Next
Cells(Loletzte + 1, 4) = Spielername_Platz_8
End Sub
Private Sub Spielername_Platz_9_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Loletzte&, x&
Loletzte = Cells(Rows.Count, 4).End(xlUp).Row
For x = 5 To Loletzte
If Cells(x, 4) = Spielername_Platz_9 Then Exit Sub
Next
Cells(Loletzte + 1, 4) = Spielername_Platz_9
End Sub
Gruß Matthias
Anzeige
AW: wow !
28.07.2018 11:05:59
Michael
hallo
hab ich dazugepackt. Der schreibt auch die Eingaben in die jeweils erste freie Zeile, allerdings leider ohne die Punkte einzutragen. Ich habe es außerdem mal versucht indem ich diesen alten Code:
Private Sub CommandButton1_Click()
Dim x&
For x = 5 To 102
Select Case Spielername_Platz1_Turnier1_Spieltag1
Case Is = Range("D" & x)
Range("I" & x) = 10
End Select
Select Case Spielername_Platz_2
Case Is = Range("D" & x)
Range("I" & x) = 9
End Select
Select Case Spielername_Platz_3
Case Is = Range("D" & x)
Range("I" & x) = 8
End Select
Select Case Spielername_Platz_4
Case Is = Range("D" & x)
Range("I" & x) = 7
End Select
Select Case Spielername_Platz_5
Case Is = Range("D" & x)
Range("I" & x) = 6
End Select
Select Case Spielername_Platz_6
Case Is = Range("D" & x)
Range("I" & x) = 5
End Select
Select Case Spielername_Platz_7
Case Is = Range("D" & x)
Range("I" & x) = 4
End Select
Select Case Spielername_Platz_8
Case Is = Range("D" & x)
Range("I" & x) = 3
End Select
Select Case Spielername_Platz_9
Case Is = Range("D" & x)
Range("I" & x) = 2
End Select
Next
End Sub
mal rausgenommen habe...dasselbes Ergebniss. Trägt Namen ein, aber keine Punkte.
Vielleicht mache ich irgendwas falsch.
Vielleicht wäre es besser wenn du es einbaust und die Tabelle hochlädst.
Hier die Tabelle wo ich es gerade eingebaut habe:
https://www.herber.de/bbs/user/122965.xlsm
Gruß
Michael
Anzeige
warum klickst Du nicht auf Punkte eintragen ?
28.07.2018 11:13:34
Matthias
Userbild
AW: warum klickst Du nicht auf Punkte eintragen ?
28.07.2018 11:16:38
Michael
Ups...hatte noch eine alte Liste wo "Übertragen" steht! Daran wirds liegen!! Ich probiers sofort aus...
AW: warum klickst Du nicht auf Punkte eintragen ?
28.07.2018 11:35:05
Michael
sorry geht immer noch nicht. Habe nun die aktuellste Tabelle von Deinem letzten Vorschlag mit dem grünen Hintergrund beim ersten Textfeld genommen und den Code eingebaut...selbe Ergebnis! Trägt nur Namen ein, aber nicht die Punkte.
In Deinem Screenshot sieht man aber auch das keine Punkte eingetragen werden!
https://www.herber.de/bbs/user/122967.xlsm
Anzeige
AW: warum klickst Du nicht auf Punkte eintragen ?
28.07.2018 11:45:05
Michael
ich glaub ich weiß jetzt woran es liegt...hab aus Versehen was wichtiges gelöscht...
AW: warum klickst Du nicht auf Punkte eintragen ?
28.07.2018 11:45:16
Michael
ich glaub ich weiß jetzt woran es liegt...hab aus Versehen was wichtiges gelöscht...
AW: warum klickst Du nicht auf Punkte eintragen ?
28.07.2018 11:46:07
Michael
jetzt weiss ich auch wie der doppelte eintrag zustande kam...grad wieder passiert;-))))
Warum hast Du denn den Code gelöscht?
28.07.2018 11:45:53
Matthias
Der Code von Commandbutton1 muss drinbleiben
Trage die Namen ein für die jeweiligen Punkte und klicke danach auf Punkte eintragen.
https://www.herber.de/bbs/user/122968.xlsm
Gruß Matthias
AW: Warum hast Du denn den Code gelöscht?
28.07.2018 11:53:44
Michael
SEHR GUT!!! Es funktioniert!!!!!
Viele Dank Matthias
Kann ich meine beiden Makros mit dem CommandButton "Punkte eintragen" verbinden, damit ich nur einen Button drücken muss?
AW: Warum hast Du denn den Code gelöscht?
28.07.2018 12:04:33
Michael
Ich glaub ich würde das auch notfalls alleine herausbekommen wie ich die beiden Makros mit der Punkte eintragen Schaltfläche verbinden kann. Ich möchte nicht unnötig Deine Zeit stehlen!
Ich danke Dir vielmals für Deine wirklich gute Hilfe und wünsche Dir noch ein schönes Wochenende.
MfG
Michael J.
Hier können MJ und ML weiterplaudern ;-) owT
30.07.2018 13:55:03
lupo1

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige