Anzeige
Archiv - Navigation
1720to1724
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

der schlechteste fängt an

der schlechteste fängt an
10.11.2019 19:04:44
Lippeud
Hallo zusammen,
ich habe mir mit Excel 2010 eine Dart Tabelle zusammengebastelt.
In der Zeile 2 habe ich die Zellen b2 und c2, d2 und e2 und so weiter bis p2 und q2 verbunden und in diesen verbundenen Zellen stehen auch die Namen der Mitspieler.
In der Zeile 3 wird dann in B3 der geworfene Wert eingetragen und in C3 wird dann der aktuelle Punktestand für diesen Durchgang über eine Formel berechnet. So kann man immer sehen wie der Punktestand in welchem Wurf war. Am Ende der Liste In der Zeile 27 (auch verbundene Zellen wie in Zeile 2) werden dann immer die Aktuellen Punktestände über eine Formel berechnet und angezeigt.
Bei Spielende ist derjenige der als letzter noch Punkte übrig hat (alle anderen Mitspieler haben von 301 oder 501 bis auf 0 runter gespielt) der Verlierer.
Jetzt soll per Klick auf einen Button in einer Userform ein Macro ausgelöst werden, welches in die verbundenen Zellen B2 bis P2 die Namen in gleicher Reihenfolge wieder eintragen soll. Das Problem hierbei ist, dass der Verlierer anfängt, aber die Reihenfolge die Gleiche bleibt.
Beispiel: Spieler = Eins, Zwei, Drei, Vier... Spieler Drei verliert und fängt deshalb das neue Spiel an.
Also soll die Reihenfolge so aussehen: Spieler = Drei, Vier, Eins, Zwei
Kann mir hierzu jemand einen Tipp geben oder sogar einen VB code zusammenbasteln ?

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: der schlechteste fängt an
10.11.2019 22:53:54
Lippeud
Ich hab diesen Beitrag auch beim VBA Forum gepostet...
Na dann ist ja gut
10.11.2019 23:37:59
Daniel
Dir wird ja dort sicherlich schon geholfen.
AW: der schlechteste fängt an
11.11.2019 07:15:51
Stefan
Hallo erstmal,
ich vermute wie Daniel, dass dir vermutlich schon geholfen wird.
Trotzdem hätte ich noch zwei Anmerkungen, hier im Forum setzt man unten normalerweise sowas wie Grüße "Vorname" hin, dass man weiß wie man jmd ansprechen soll.
Und es wäre evtl auch von Vorteil wenn man eine Beispielmappe hochladen kann, sonst müsste derjenige, der dir hilft sich aus deinen Zeilen hier alles wieder selbst zusammensetzten und man würde auch deine Tabellenbezeichnungen etc wissen.
grüße Stefan
Anzeige
AW: der schlechteste fängt an
11.11.2019 08:36:23
Lippeud
Hallo Stefan,
es ist leider so, dass mir noch nicht geholfen wurde.Und wenn ich hier aus unwissenheit irgendjemand auf die Füsse getreten hab, weil ich die gleiche Frage in einem anderen Forum gestellt hab, tut mir das leid.Das war nicht meine Absicht.
Also der Code ohne verbundene Zellen in Zeile 2 und 27 ist folgender:
Private Sub CommandButton7_Click()
Dim varPlayers As Variant, varNew() As Variant, varRet As Variant
Dim lngCol As Long, lngIndex As Long
With ActiveSheet
If Application.CountA(.Range("B2:I2")) > 1 And Application.Max(.Range("B27:I27")) > 0 Then
lngCol = Application.Max(2, .Cells(2, .Columns.Count).End(xlToLeft).Column)
varPlayers = .Range(.Cells(2, 2), .Cells(2, lngCol))
varRet = Application.Match(Application.Max(.Range("B27").Resize(1, lngCol - 1)), _
.Range("B27").Resize(1, lngCol - 1), 0)
If IsNumeric(varRet) Then
If varRet > 1 Then
ReDim varNew(1 To 1, 1 To UBound(varPlayers, 2))
For lngIndex = 1 To UBound(varPlayers, 2)
varNew(1, lngIndex) = varPlayers(1, varRet)
varRet = varRet + 1
If varRet > UBound(varPlayers, 2) Then varRet = 1
Next
.Range("B2").Resize(1, UBound(varPlayers, 2)) = varNew
End If
.Range("B3:i26") = ""
End If
End If
End With
End Sub
Dieser Code funktioniert perfekt... Aber wie beschrieben möchte ich den Punktestand zu jedem Wurf in den Zeilen 3 bis 26 zusätzlich anzeigen. Quasi jeweils eine Spalte dazwischen setzen und die Zellen im Namensfeld(Zeile 2) und im Ergebnissfeld (Zeile 27) verbinden.
Für einen Hinweis wo ich das im Code anpassen müsste wäre ich sehr dankbar.
Einen schönen Tag noch... gruß Ulli
Anzeige
Wenn du schon crosdpostest
11.11.2019 08:54:07
Daniel
Dann solltest du die verschieden Threads mit einander verlinkten, so dass man mit einem einfachen Mausklick in das andere Forum wechseln und nachsehen kann, was dort bereits gelaufen ist.
Da du in den Foren kostenlos Hilfe bekommst, solltest du den Menschen, die dir helfen so viel Arbeit abnehmen wie möglich.
Gruß Daniel
AW: der schlechteste fängt an
11.11.2019 08:55:13
Stefan
Hallo,
es geht ja nicht unbedingt darum jemandem auf die Füße zu treten.
Es war sicher auch von mir nicht böse gemeint, aber wenn du in zwei Foren nachfrägst und zwei Antworten kriegst, wird das halt eher eine gegeneinanderarbeiterei.
Also das Verbinden und zusätzliche Spalte einfügen, würde ich nicht jedesmal über den Code _ machen, sonder händisch einmal in der Tabelle, dann müsstest du nur für die Teile vom z.B. "Löschen"

.Range("B3:i26") = ""
die Spaltennamen ändern.
beim runterzählen der noch verbleibenden Punkte könntest du entweder in die neuen Zellen ("C;E;G;I;...) mit der summe runterzählen lassen, oder hier im VBA das einfach mit Variablen machen
also
eine neue Variable deklarieren und dann jedesmal von dieser Variable die gerade erziehlte Punktzahl abziehen und dann in das erste leere Feld der Spalte C (Bsp.) speichern lassen.
Grüße
Stefan
ps. mit hochgelandener Beispieldatei wäre das ganze etwas einfacher, da ich noch nichtmal weiß wie du das abspeicherst, also ob du die erziehlste Punktzahl jedesmal händisch in die Tabelle einträgst oder ob du das via UserForm machst?!
Anzeige
AW: der schlechteste fängt an
11.11.2019 09:47:00
Lippeud
Hallo Stefan,
ich habe bereits an dem alten code gebastelt aber hab es leider nicht hinbekommen und somit den Code wie zu erwarten war "Zerschossen".
Ich versuch hier mal die Datei anzuhängen.
Beim normalen öffnen der Datei einfach in der Userform den Button "Fullscreen aus" klicken und dann findest du den betreffenden Code im Editor unter Userform 1, Button "Nächstes Spiel"(commandbtn.7_click).
Es ist sicherlich einfacher zu verstehen wie ich das meine, wenn man das einfach mal in der geöffneten Datei testet.
Danke für deine Hilfe... Gruß Ulli.
Datei: https://www.herber.de/bbs/user/133088.xlsm
Anzeige
AW: der schlechteste fängt an
11.11.2019 11:27:08
Stefan
Hallo,
ich hab mir deinen bisherigen Code mal angesehen, und für deinen Fehler war diese Codezeile verantwortlich.
.Range("B3:P26") = ""

Du wolltest darin Zellen löschen, welche gesperrt sind.
.Range("B3:B26") = ""
.Range("D3:D26") = ""
.Range("F3:F26") = ""
.Range("H3:H26") = ""
.Range("J3:J26") = ""
.Range("L3:L26") = ""
.Range("N3:N26") = ""
.Range("P3:P26") = ""

Ich habs abgeändert, dass er jede Spalte einzeln löscht.
Dann war ja dein Hauptproblem, dass mit dem sortieren (falls ich mich nicht irre)
Ich hab es jetzt soweit gelöst, dass immer der mit den meisten Restpunkten in Zelle B2 steht, die Reihenfolge bleibt aber erhalten.
Das ganze ist aber darauf ausgelegt, dass 8 Spieler mitspielen, sonst hast du eine leere Spalte.
Falls du nur 2-7 Spieler hast, und die leere Spalte nicht haben möchtest, müsstest du zuerst abfragen wieviele Leute dabei sind und das dann dementsprechend ergänzen.
https://www.herber.de/bbs/user/133094.xlsm
Ich hoffe ich konnte helfen
Grüße
Stefan
Anzeige
AW: der schlechteste fängt an
11.11.2019 12:43:34
Lippeud
Hallo Stefan,
es sollte natürlich abgefragt werden wie viele Leute mitspielen. Ich hänge hier mal die alte Datei ohne den dazwischen gesetzten Spalten an. Ich hab die so gespeichert, dass schon der Verlierer (Spieler Drei) fest steht. Bei klick auf "Nächstes Spiel" ist die Reihenfolge ab B2 dann: Drei, Vier, Eins, Zwei. Vielleicht ist das ja ein besserer Ansatzpunkt.
Eigentlich soll alles so bleiben wie es ist, lediglich die Anzeige über den jeweiligen Punktestand bei jedem Wurf wollte ich da mit einbinden, weil das interessante Informationen für den Spieler sind.
Vielen Dank für deine Mühen....
Gruß: Ulli
Datei(Alt): https://www.herber.de/bbs/user/133098.xlsm
Anzeige
AW: der schlechteste fängt an
11.11.2019 13:01:46
Stefan
Hallo Ulli,
ich hab deinen alten Code leider auch nicht zum anpassen gebracht, deshalb hab ich es jetzt etwas umständlicher gelöst ;)
funktioniert aber normal genauso.
Teste die Datei bitte und gib mir ein Feedback ob das so passt.
https://www.herber.de/bbs/user/133099.xlsm
Grüße
Stefan
AW: der schlechteste fängt an
11.11.2019 14:21:18
Lippeud
Hallo Stefan,
leider haut das mit der Reihenfolge beim neubefüllen beim klick auf "Nächstes Spiel" noch nicht hin.
ich habe jetzt auch leider nicht so richtig Zeit mich damit zu befassen, da ich im Büro bin.
Ich werd mich heute Abend nochmal intensiver damit befassen.
Aber ich glaube dass dein Weg das Problem zu lösen, schonmal in die richtige Richtung geht.
Vielen Dank erstmal dafür...
güße : Ulli
Anzeige
AW: der schlechteste fängt an
11.11.2019 19:55:46
Lippeud
Hallo Stefan,
ich hab jetzt nochmal etwas rumgespielt.
Mir ist aufgefallen, dass bei mehreren Spielern lediglich alle Spieler ein Feld nach links rutschen beim klicken auf "Nächstes Spiel". Egal wer verloren hat. Aber... wenn Spieler Vier verliert, dann funktioniert alles so wie es sein soll, also er wird bei einhaltung der Reihenfolge an den Anfang gestellt.
Und ich dachte mir, dass man eventuell bei "Private Sub Reihenfolge()"
If S1 "" Then_
x = x + 1_
End If
die Variable "X" mit Dim deklarieren muß oder überehaupt einen Wert zuweisen muß... kann es daran liegen das das nicht so funktioniert wie es soll ?
Anzeige
AW: der schlechteste fängt an
12.11.2019 06:50:17
Stefan
Hallo Ulli,
erstmal sorry, ich hatte gestern Nachmittag/Abend keine Zeit mehr...
Also die Variable X wurde bisher nicht deklariert, war ein Flüchtigkeitsfehler von mir...
Und bei den Zuweisungen hab ich etwas mist gebaut, ich hab meine Fehler jetzt natürlich ausgebessert und auch etwas "intesiver" getestet.
So sollte das jetzt funktionieren *hoff ich* ;)
https://www.herber.de/bbs/user/133112.xlsm
Grüße
Stefan Hiemer
AW: der schlechteste fängt an
13.11.2019 16:41:19
Lippeud
Hallo Stefan,
ich muß mich recht herzlich bei dir bedanken.
wir haben gestern mit dieser Liste die ersten Erfahrungen gesammelt, denn wir haben diese Datei bei unserem Dartabend verwendet.
Wir waren alle sehr zufrieden damit.
Jetzt werde ich noch versuchen eine abrufbare Statistik einzubauen, damit jeder am Ende sehen kann was sein bester Wurf, schnellster Ausstieg , etc.war.
Sollte ich dabei wieder auf Probleme stoßen, werd ich mich hier im Forum melden und um Tipps und Ratschläge fragen.
Danke nochmals... Gruß : Ulli
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige