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

Summe???

Summe???
22.08.2007 11:29:59
Julia

Hallo
ich habe ein Problem.
Ich habe eine Tabelle mit 3 Spielern (Kartenspiel)
Die Gesamtpunktzahl bei diesem Kartenspiel ist immer 162 Punkte
Nach dem Spiel zählt jeder seine Karten (Punkte). Die Summe der 3 Spieler muss 162 ergeben.
Da wir zu faul sind alle zu rechnen habe ich jetzt eine Excel Tabelle erstellt.
Meistens geht das Spiel so aus das 2 Spieler wenig Punkte haben und einer viele.
Wir machen es dann so dass die 2 die wenig Karten haben ihre Punkte zählen und die Summe von den beiden wird dann von 162 abgezogen. Dann waeiss man wieviel der 3. Spieler hat
Beispiel:
Spieler 1: hat 12 Punkte
Spieler 2: hat 20 Punkte
Somit hat Spieler 3 130 Punkte (162 - 12 - 20)
Das will ich jetzt mit Excel lösen. Die Formel bekomm ich hin. Aber wie lautet die Formel wenn ich nicht weiss welcher Spieler jetzt nicht zählen soll??
Gibts da ne Wenn Funktion, d.h. wenn ich in die Spalte 2 Werte eingebe soll automatisch der 3. Wert berechnet werden. Aber ich kann ja vorher nicht wissen für welchen Spieler der 3. Wert berechnet werden soll.
Anbei ein Screenshot

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Summe??? - Link Screenshot
22.08.2007 11:31:16
Julia
hier der Link zum Screenshot
Userbild

verstehe die Frage leider nicht !
22.08.2007 11:57:57
Matthias L
Hallo Julia
Ich verstehe Deine Frage ganz ehrlich gesagt nicht.
oder doch ?
Da der mit den wenigsten Karten eh schon zählt,
nimm 2 Zellen: schreibe rein =Zufallszahl() und der mit dem kleineren Wert soll auch noch zählen.
Sorry ich versteh es nicht.
Userbild

AW: Summe??? - Link Screenshot
22.08.2007 12:01:03
Oberschlumpf
Hi Julia
Versuch es mal so.
Schreib diesen Code ins Change-Ereignis deines Sheets:


Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 1 Or Target.Column = 2 Or Target.Column = 3 Then
Select Case Target.Column
Case 1
If Target.Offset(0, 1).Value <> "" Then
Target.Offset(0, 2).Value = 162 - Target.Value - Target.Offset(0, 1).Value
End If
If Target.Offset(0, 2).Value <> "" Then
Target.Offset(0, 1).Value = 162 - Target.Value - Target.Offset(0, 2).Value
End If
Case 2
If Target.Offset(0, -1).Value <> "" Then
Target.Offset(0, 1).Value = 162 - Target.Value - Target.Offset(0, -1).Value
End If
If Target.Offset(0, 1).Value <> "" Then
Target.Offset(0, -1).Value = 162 - Target.Value - Target.Offset(0, 1).Value
End If
Case 3
If Target.Offset(0, -1).Value <> "" Then
Target.Offset(0, -2).Value = 162 - Target.Value - Target.Offset(0, -1). _
Value
End If
If Target.Offset(0, -2).Value <> "" Then
Target.Offset(0, -1).Value = 162 - Target.Value - Target.Offset(0, -2). _
Value
End If
End Select
End If
Application.EnableEvents = True
End Sub


Hilft das?
Ciao
Thorsten

Anzeige
AW: Summe??? - Link Screenshot
22.08.2007 12:32:17
Julia
kann man den fehlende wert nicht direkt in das leere feld schreiben??
die 162 ist ja fest eingebaut in deinem code, kann man das auf die zelle beziehen??
Es kann ein das in der nächsten Zeile die Punkte pro Runde sich ändert
Also nicht immer 162

AW: Summe??? - Link Screenshot
22.08.2007 12:38:27
Renee
Hallo Julia,
Ich bin ebenfalls von 162 fix ausgegagen.
Aber hier würde der Wert auch Spalte E geholt:


Private Sub Worksheet_Change(ByVal Target As Range)
Dim iTotal As Integer
Dim iXTotal As Integer
If Intersect(Target, Range("B:D")) Is Nothing Or _
Target.Cells.Count > 1 Then Exit Sub
On Error GoTo leave_sub
iTotal = Cells(Target.Row, 5).Value
iXTotal = Application.WorksheetFunction.Sum(Cells(Target.Row, 2), _
Cells(Target.Row, 3), _
Cells(Target.Row, 4))
Application.EnableEvents = False
Select Case iXTotal
Case iTotal
GoTo leave_sub
Case Is > iTotal
MsgBox "Das Total ergibt mehr als " & iTotal, vbOKOnly + vbExclamation, "Fehler in der  _
Summe"
GoTo leave_sub
End Select
Select Case Target.Column
Case 2
If Target.Offset(0, 1) = 0 And Target.Offset(0, 2) = 0 Then GoTo leave_sub
If Target.Offset(0, 1) = 0 Then
Target.Offset(0, 1) = iTotal - Target.Offset(0, 2) - Target
Else
Target.Offset(0, 2) = iTotal - Target.Offset(0, 1) - Target
End If
Case 3
If Target.Offset(0, -1) = 0 And Target.Offset(0, 1) = 0 Then GoTo leave_sub
If Target.Offset(0, -1) = 0 Then
Target.Offset(0, -1) = iTotal - Target.Offset(0, 1) - Target
Else
Target.Offset(0, 1) = iTotal - Target.Offset(0, -1) - Target
End If
Case 4
If Target.Offset(0, -1) = 0 And Target.Offset(0, -2) = 0 Then GoTo leave_sub
If Target.Offset(0, -1) = 0 Then
Target.Offset(0, -1) = iTotal - Target.Offset(0, -2) - Target
Else
Target.Offset(0, -2) = iTotal - Target.Offset(0, -1) - Target
End If
End Select
leave_sub:
Application.EnableEvents = True
End Sub


Greetz Renee

Anzeige
AW: Summe???
22.08.2007 12:17:04
Renee
Hallo Julia,
Nicht das ich den Userbild
kritisieren will, aber dort kanns auch Minuswerte und falsche Summen geben. Hier wäre ein Vorschlag von mir, der mit den Spalten B,C,D so wie in Deinem Screenshot arbeitet:


Private Sub Worksheet_Change(ByVal Target As Range)
Const iTotal = 162
Dim iXTotal As Integer
If Intersect(Target, Range("B:D")) Is Nothing Or _
Target.Cells.Count > 1 Then Exit Sub
On Error GoTo leave_sub
iXTotal = Application.WorksheetFunction.Sum(Cells(Target.Row, 2), _
Cells(Target.Row, 3), _
Cells(Target.Row, 4))
Application.EnableEvents = False
Select Case iXTotal
Case iTotal
GoTo leave_sub
Case Is > iTotal
MsgBox "Das Total ergibt mehr als " & iTotal, vbOKOnly + vbExclamation, "Fehler in der  _
Summe"
GoTo leave_sub
End Select
Select Case Target.Column
Case 2
If Target.Offset(0, 1) = 0 And Target.Offset(0, 2) = 0 Then GoTo leave_sub
If Target.Offset(0, 1) = 0 Then
Target.Offset(0, 1) = iTotal - Target.Offset(0, 2) - Target
Else
Target.Offset(0, 2) = iTotal - Target.Offset(0, 1) - Target
End If
Case 3
If Target.Offset(0, -1) = 0 And Target.Offset(0, 1) = 0 Then GoTo leave_sub
If Target.Offset(0, -1) = 0 Then
Target.Offset(0, -1) = iTotal - Target.Offset(0, 1) - Target
Else
Target.Offset(0, 1) = iTotal - Target.Offset(0, -1) - Target
End If
Case 4
If Target.Offset(0, -1) = 0 And Target.Offset(0, -2) = 0 Then GoTo leave_sub
If Target.Offset(0, -1) = 0 Then
Target.Offset(0, -1) = iTotal - Target.Offset(0, -2) - Target
Else
Target.Offset(0, -2) = iTotal - Target.Offset(0, -1) - Target
End If
End Select
leave_sub:
Application.EnableEvents = True
End Sub


Greetz Renee

Anzeige
AW: Summe???
22.08.2007 12:38:16
Julia
Hi Renee
klappt suuuper Danke
Jetzt noch ein Wunsch
Das Spiel pro Runde ist ja 162
Es kann aber sein das es Sonderpunkte gibt die vor jeder Runde berechnet werden können
D.h normalerweise ist jede Zeile (Runde) 162 Punkte wert
Es kann aber seinn wenn ich sehr gute Karten habe ich 20 Sonderpunkte melde, diese machen dann aus 162 Punkten jetzt 182 Punkte (162 Pkt. normales Spiel + 20 Sonderpkt.)
Ist es möglich das sich dein Code zeilenweise auf die Spalte J bezieht?? dort steh ja die Gesamtpunktzahl für diese Runde
Danke

AW: Summe???
22.08.2007 12:41:01
Renee
Hallo Julia,
Wenn Spalte J statt E (wie oben gepostet), ändere diese Zeile


statt: iTotal = Cells(Target.Row, 5).Value
das  : iTotal = Cells(Target.Row, 10).Value


Greetz Renee

Anzeige
AW: Summe???
22.08.2007 12:48:12
Julia
Sorry klappt irgendwie nicht

AW: Summe???
22.08.2007 12:54:18
Renee
Julia,
Sorry klappt irgendwie nicht
Sorry, aber mit solchen Meldungen kann man sehr wenig anfangen.
Hier nochmal der ganze (etwas verbesserte) Code:


Private Sub Worksheet_Change(ByVal Target As Range)
Dim iTotal As Integer
Dim iXTotal As Integer
If Intersect(Target, Range("B:D")) Is Nothing Or _
Target.Cells.Count > 1 Then Exit Sub
On Error GoTo leave_sub
iTotal = IIf(Cells(Target.Row, 10).Value = 0, 162, Cells(Target.Row, 10))
iXTotal = Application.WorksheetFunction.Sum(Cells(Target.Row, 2), _
Cells(Target.Row, 3), _
Cells(Target.Row, 4))
Application.EnableEvents = False
Select Case iXTotal
Case iTotal
GoTo leave_sub
Case Is > iTotal
MsgBox "Das Total ergibt mehr als " & iTotal, vbOKOnly + vbExclamation, "Fehler in der  _
Summe"
GoTo leave_sub
End Select
Select Case Target.Column
Case 2
If Target.Offset(0, 1) = 0 And Target.Offset(0, 2) = 0 Then GoTo leave_sub
If Target.Offset(0, 1) = 0 Then
Target.Offset(0, 1) = iTotal - Target.Offset(0, 2) - Target
Else
Target.Offset(0, 2) = iTotal - Target.Offset(0, 1) - Target
End If
Case 3
If Target.Offset(0, -1) = 0 And Target.Offset(0, 1) = 0 Then GoTo leave_sub
If Target.Offset(0, -1) = 0 Then
Target.Offset(0, -1) = iTotal - Target.Offset(0, 1) - Target
Else
Target.Offset(0, 1) = iTotal - Target.Offset(0, -1) - Target
End If
Case 4
If Target.Offset(0, -1) = 0 And Target.Offset(0, -2) = 0 Then GoTo leave_sub
If Target.Offset(0, -1) = 0 Then
Target.Offset(0, -1) = iTotal - Target.Offset(0, -2) - Target
Else
Target.Offset(0, -2) = iTotal - Target.Offset(0, -1) - Target
End If
End Select
leave_sub:
Application.EnableEvents = True
End Sub


Greetz Renee

Anzeige
AW: Summe???
22.08.2007 13:00:14
Julia
Perfekt du bist mein Held...
Vielen vielen Dank
Wie würde der Code aussehen wenn nur 2 Spieler mitspielen und nicht 3??

Für 2 Spieler,
22.08.2007 13:10:46
Renee
Hallo Julia,
1. Mach aus dem Held, eine Heldin... dann bin ich auch zufrieden ;-)
2. Wie würde der Code aussehen wenn nur 2 Spieler... Genau gleich:
a) Fülle entweder Spieler 1 oder Spieler 2 einen Wert aus
b) Für Spieler 3 eine Null eintippen und voilà
Greetz Renee

AW: Für 2 Spieler,
22.08.2007 13:12:55
also doch Tante??

wer hat den gesagt, nicht ? ...
22.08.2007 13:14:04

AW: wer hat den gesagt, nicht ? ...
22.08.2007 13:57:39
Julia
also nochmal ich ;)
wenn ich 0 Punkte eintrage rechnet er gar nicht
und für 2 Spieler geht es auch nicht

AW: wer hat den gesagt, nicht ? ...
22.08.2007 14:13:32
Renee
Hallo Julia,
Wenn Du genau die Reihenfolge, wie geschrieben einhältst, rechnet er/sie/es sehr wohl!
1. Spieler 1: x Punkte eintragen
2. Spieler 3: 0 eintragen
er rechnet für Spieler 2 die Punkte aus
oder
1. Spieler 2: x Punkte eintragen
2. Spieler 3: 0 eintragen
sie rechnet für Spieler 1 die Punkte aus
aber nicht
1. Spieler 1: 0 Punkte eintragen...
es kann so gar nix mehr richtig rechnen
...so und damit ist Schluss, ich würde Dir empfehlen jetzt mit Spielen anzufangen, denn jetzt bin ich zu faul zum Schreiben.
Greetz Renee

Anzeige
AW: Summe???
22.08.2007 13:13:15
Oberschlumpf
Hi Renee
Jo, hast Recht mit den teilweise falschen Ergebnissen.
Da hatte ich wohl zu schnell gedacht, das alles passt.
Ciao
Thorsten

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige