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

Highscore Ergenisse speichern

Highscore Ergenisse speichern
05.12.2015 14:10:53
Kenneth
Hallo VBA Community,
ich habe ein kleines Spiel programmiert, in dem man Drogen kaufen und verkaufen muss. Mir geht es nur um die Bais, es hätte auch mit Obst und Gemüse sein können. Nach Spielzeit X ist Game Over und die Ergebnisse sollen sortiert in einen bestimmen Bereich des Datenblattes in den Zellen eingetragen werden. Kommt ein höherer Highscore soll der alte Highscore eine zeile samt dazugehörigen daten runterutschen. Der Bereich ist von B7:E36 , erste Spalte das erspielte Vermögen, zweite Spalte die Spieldauer, dritte Spalte das Datum, vierte Spalte den Spielernamen. Das habe ich bereits:
----------
Sub gameovercheck()
spieltage = drugwarsmain.Label103.Caption
varSpieldauer = Drugwars.ComboBox2.Value
schulden = drugwarsmain.lblschulden.Caption
bargeld = Label102.Caption
bankkonto = Label105.Caption
varName = Drugwars.TextBox1.Value
If schulden >= 1000000 Then
If Labelkokainl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelkokainl.Caption * 18232)
End If
If Labelheroinl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelheroinl.Caption * 6542)
End If
If Labelcph4l.Caption > 0 Then
drogenkapital = drogenkapital + (Labelcph4l.Caption * 180541)
End If
If Labelacidl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelacidl.Caption * 3654)
End If
If Labelmdal.Caption > 0 Then
drogenkapital = drogenkapital + (Labelmdal.Caption * 2845)
End If
If Labelpcpl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelpcpl.Caption * 2642)
End If
If Labelmollysl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelmollysl.Caption * 399)
End If
If Labelhaschl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelhaschl.Caption * 488)
End If
If Labelweedl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelweedl.Caption * 420)
End If
If Labelextasyl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelextasyl.Caption * 1123)
End If
If Labelanabolikal.Caption > 0 Then
drogenkapital = drogenkapital + (Labelanabolikal.Caption * 401)
End If
If Labelmushroomsl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelmushroomsl.Caption * 75)
End If
If Labelhoneyoill.Caption > 0 Then
drogenkapital = drogenkapital + (Labelhoneyoill.Caption * 55)
End If
If Labelspeedl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelspeedl.Caption * 151)
End If
If Labelludesl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelludesl.Caption * 14)
End If
If Labelviagral.Caption > 0 Then
drogenkapital = drogenkapital + (Labelviagral.Caption * 3798)
End If
If Labelcialisl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelcialisl.Caption * 3122)
End If
If Labelcamagral.Caption > 0 Then
drogenkapital = drogenkapital + (Labelcamagral.Caption * 2421)
End If
If Labelcrackl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelcrackl.Caption * 1254)
End If
If Labelpoppersl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelpoppersl.Caption * 98)
End If
If Labellachgasl.Caption > 0 Then
drogenkapital = drogenkapital + (Labellachgasl.Caption * 912)
End If
If Labelmeskalinl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelmeskalinl.Caption * 655)
End If
If Labelcrystalmethl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelcrystalmethl.Caption * 2845)
End If
MsgBox "Drogenkapital: " & drogenkapital
MsgBox "Du konntest die Schuldenlast nicht ertragen und hast dich selbst gerichtet. Deine  _
restlichen Drogen sind " & Format$(drogenkapital, "0.00") & " € wert. Versuche dein Glück im nächsten Leben! Game Over!", vbOKOnly, "Game Over! Schulden zu hoch!"
drugwarsmain.Hide
Range("D7").Value = Date
Range("E7").Value = varName
Range("C7").Value = varSpieldauer
Range("B7").Value = (bargeld + bankkonto + drogenkapital) - schulden
Else
End If
If varSpieldauer = spieltage Then
If Labelkokainl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelkokainl.Caption * 18232)
End If
If Labelheroinl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelheroinl.Caption * 6542)
End If
If Labelcph4l.Caption > 0 Then
drogenkapital = drogenkapital + (Labelcph4l.Caption * 180541)
End If
If Labelacidl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelacidl.Caption * 3654)
End If
If Labelmdal.Caption > 0 Then
drogenkapital = drogenkapital + (Labelmdal.Caption * 2845)
End If
If Labelpcpl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelpcpl.Caption * 2642)
End If
If Labelmollysl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelmollysl.Caption * 399)
End If
If Labelhaschl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelhaschl.Caption * 488)
End If
If Labelweedl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelweedl.Caption * 420)
End If
If Labelextasyl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelextasyl.Caption * 1123)
End If
If Labelanabolikal.Caption > 0 Then
drogenkapital = drogenkapital + (Labelanabolikal.Caption * 401)
End If
If Labelmushroomsl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelmushroomsl.Caption * 75)
End If
If Labelhoneyoill.Caption > 0 Then
drogenkapital = drogenkapital + (Labelhoneyoill.Caption * 55)
End If
If Labelspeedl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelspeedl.Caption * 151)
End If
If Labelludesl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelludesl.Caption * 14)
End If
If Labelviagral.Caption > 0 Then
drogenkapital = drogenkapital + (Labelviagral.Caption * 3798)
End If
If Labelcialisl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelcialisl.Caption * 3122)
End If
If Labelcamagral.Caption > 0 Then
drogenkapital = drogenkapital + (Labelcamagral.Caption * 2421)
End If
If Labelcrackl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelcrackl.Caption * 1254)
End If
If Labelpoppersl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelpoppersl.Caption * 98)
End If
If Labellachgasl.Caption > 0 Then
drogenkapital = drogenkapital + (Labellachgasl.Caption * 912)
End If
If Labelmeskalinl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelmeskalinl.Caption * 655)
End If
If Labelcrystalmethl.Caption > 0 Then
drogenkapital = drogenkapital + (Labelcrystalmethl.Caption * 2845)
End If
'MsgBox "Drogenkapital: " & drogenkapital
MsgBox "GAME OVER, Zeit ist um. Deine restlichen Drogen sind " & Format$(drogenkapital, "0.00")  _
& " € wert.", vbOKOnly, "Game Over!"
drugwarsmain.Hide
Range("D7").Value = Date
Range("E7").Value = varName
Range("C7").Value = varSpieldauer
Range("B7").Value = (bargeld + bankkonto + drogenkapital) - schulden
Else
End If
End Sub

-----------------
Ich bin totaler Anfänger, also bitte nicht über meine Kenntnisse lustig machen :)
Projekt heisst DW.xlsm, Tabellenblatt heisst DW
Kann mir jemand weiterhelfen? Ich hab keinen blassen Schimmer wie ich es angehen könnte ausser mit zahllosen IF Bedingungen. Das kann nicht der richtige weg sein...
Bitte um Hilfe und sage schonmal im Vorraus, Danke euch.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Highscore Ergenisse speichern
05.12.2015 14:41:37
Matthias
Hallo Kenneth,
füge deinen neusten Spielstand doch einfach unten an deinen Score-Bereich und sortiere diesen absteigend. Damit wandert der neue Wert an die richtige Stelle (wenn Highscore dann halt ganz oben) und du löschst die unterste Zeile, was ja der schlechteste deiner Werte ist. Dieser wurde sozusagen vom neuen Score verdrängt.
Realisieren kann man das wie folgt:
'erst neuen Spielstand in B37:E37 schreiben
Range("B7:E37").Sort Key1:=Range("B7"), Order1:=xlDescending 'Sortieren nach Spalte B
Range("B37:E37").ClearContents 'schlechtesten Wert entfernen
lg Matthias

Anzeige
AW: Highscore Ergenisse speichern
05.12.2015 14:53:00
Kenneth
Danke das werde ich gleich mal testen.
Werden bei der Sortierung (Range("B7:E37").Sort Key1:=Range("B7"), Order1:=xlDescending) die anderen Werte (Datum, Name, Spieldauer) auch passend mitsortiert oder muss ich da noch mit vlookup arbeiten um diese richtig zuzuordnen?
Gruss
Kenneth

AW: Highscore Ergenisse speichern
05.12.2015 15:35:00
Matthias
Die werden mitsortiert, denn ich habe vor dem '.Sort' ja den kompletten Bereich angegeben, nicht nur eine Spalte.
lg Matthias

AW: Highscore Ergenisse speichern
05.12.2015 15:41:00
Kenneth
Super, Danke Matthias.
Hast mir sehr weitergeholfen.
Super Forum hier :)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige