Clever-Excel-Forum

Normale Version: Alle 9 Zellen nur ein "x" erlaubt
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

nachdem ich hier schon oft als gast im Forum unterwegs war habe ich jetzt den Schritt gewagt mich anzumelden.
Einmal um mich für die vielen inspirierenden Lösungen hier im Forum zu bedanken...die mir schon oft weitergeholfen haben Smile

Zum anderen weil ich gerade aktuell ein Problem mit Excel habe...und ich nicht auf eine Lösung komme.

Ich bin Veranstalter eines privaten Bundesliga-Tippspiels. Bei uns kann pro Spieltag ein Spiel als Jokertipp markiert werden.
Dies geschieht mit einem x.

Nachdem alle Mitspieler ihre Tipps abgegeben haben trage ich diese in einer Excel-Tabelle ein (Dateimuster habe ich als Anhang beigefügt).
Nun kann es vorkommen dass im Eifer des Gefechts einige Mitspieler versehentlich zwei oder gar mehr Spiele als Jokertipp markiert haben.
Dieses fällt mir dann bei der Eingabe der Tipps auch nicht immer auf.

Ich suche jetzt nach einer Lösung dass mir bei der Eingabe eines zweiten x eine Fehlermeldung angezeigt wird.

Wer sich jetzt die Musterdatei ansieht kann schnell das Prinzip erkennen.

Zum Beispiel beim Spieler 1 (s1). Da darf in den Zellen F11 - F19 nur ein x eingetragen werdenn. In den Zellen F20 - F28 ebenfalls nur ein x. Und wieder in F 29 - F37 usw.
Sollte ich in den genannten Zellbereichen ein zweites x eingeben...soll eine Fehlermeldung erscheinen.

Beim zweiten Spieler wäre das dann der Zellbereich K11 - K19, und dann wieder K20 - K28 usw.

Beim dritten Spieler dann P11 - P19 usw.

Hat da jemand eine Lösung für mich?
Also ich verzweifel da langsam Smile

Danke schon einmal...
tobi
Hallöchen,

ich habe mir die Datei jetzt nicht angeschaut. Eine Variante wäre z.B. einen Bereich zu markieren und dort mittels der bedingten Formatierung und der Funktion ZÄHLENWENN die Anzahl der X auszuwerten und dann bei >1 den Bereich farbig zu markieren. Wenn man da noch den Zellinhalt berücksichtigt kann man das auf die X-Zellen einschränken. Im Prinzip

=UND(ZÄHLENWENN($F$11:$F$19;"X")>1;F11="X")
Hallo...und erst einmal vielen Dank für die schnelle Rückmeldung.

Ich werde Deinen Lösungsvorschlag mal ausprobieren...wird so sicherlich funktionieren.

Ehrlicherweise hatte ich da aber eher auf eine Lösung eventuell durch ein VBA-Script gehofft.

Bei 40 oder mehr Mitspielern wäre Deine Lösung sehr zeitaufwendig einzufügen...aber probieren werde ich es trotzdem.

Rückmeldung kommt...

tobi
Hi

Weniger Aufwendig wäre.

Zelle F11 auswählen.
Die Formel in der Bedingten Formatierung hinterlegen.
=ZÄHLENWENN(BEREICH.VERSCHIEBEN(tippeingabe!F$11;KÜRZEN((ZEILE(tippeingabe!A9)/9)-1)*9;;9);"x")>1
Anzuwenden auf F11:GX316

Gruß Elex
BedF F11[:F316]:

=ZÄHLENWENN(INDEX(F:F;KÜRZEN((ZEILE(F11)-2)/9)*9+2):INDEX(F:F;KÜRZEN((ZEILE(F11)-2)/9)*9+10);"X")>1

als Alternative zu Elex (aber BEREICH.VERSCHIEBEN ist in der BedF kein Nachteil)
Hallöchen,

oder du gibst einfach die Anzahl neben den einzelnen Blöcken aus, entweder mit der komplexen Formel, die Du von oben bis unten durchziehen kanns Smile Smile

Arbeitsblatt mit dem Namen 'tippeingabe'
FG
112
12x2
13x2
142
152
162
172
182
192
201
211
22x1
231
241
251
261
271
281

ZelleFormel
G11=ZÄHLENWENN(INDEX(F:F;KÜRZEN((ZEILE(F11)-2)/9)*9+2):INDEX(F:F;KÜRZEN((ZEILE(F11)-2)/9)*9+10);"X")
Verwendete Systemkomponenten: [Windows (64-bit) NT 10.00] / MS Excel 365
Diese Tabelle wurde mit Tab2Html (v2.7.1) erstellt. ©Gerd alias Bamberg

oder mit dem einfachen Ansatz =ZÄHLENWENN(F11:F19;"X") und das kopierst Du immer an den Anfang eines Blocks erst mal von oben nach unten und wenn Du eine Spalte fertig hast kopierst Du die "Spalte" dann jeweils hinter die anderen
So...jetzt erst einmal eine Rückmeldung.

Erst einmal vielen Dank für alle Lösungsvorschläge. Leider funktioniert es nicht. Bei der bedingten Formatierung ist es mir trotzdem möglich mehrere x in den Zellenbereich einzutragen.

Nach langer und intensiver Such im Netzt habe ich folgenden Code-Schnipsel gefunden:


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column <> 8 Then Exit Sub
a = Int((Target.Row - 0.5) / 9) * 9 + 1
e = a + 8
If Application.WorksheetFunction.CountIf(Range(Cells(a, 8), Cells(e, 8)), "x") > 1 Then
Target.ClearContents
End If
End Sub



Damit wäre mein Problem fast gelöst. Es lässt tatsächlich nur ein x in dem Zellbereich zu.

Nur zwei Bedingungen müssten geändert werden...leider fehlt mir das Wissen dazu.

Im Code wird der Zellbereich von H10:H18 definiert. Es müsste aber 11:19 sein. Wie muss da etwas ändern?

Und zweitens: Es wird hier nur die Spalte H überprüft. Wie muss man den Code ändern damit die Spalten F, K, P, U usw. überprüft werden?

Weiß da jemand von Euch Rat?

Danke
tobi
Moin

Richtig, die bed.F verhindert nicht die mehrfach Eingabe. Zeigt diese jedoch "gern auch Rot" an. Und da du die Eingaben machst sollte es doch klar gehen.

Du kannst die Formel auch fast so wie sie ist in die Datenprüfung schreiben. Dann wird bei normaler Eingabe die Eingabe verhindert. 
=ZÄHLENWENN(BEREICH.VERSCHIEBEN(tippeingabe!F$11;KÜRZEN((ZEILE(tippeingabe!A9)/9)-1)*9;;9);"x")<2

Trägst du jede Woche 360 Tipps von Hand ein?

Gruß Elex
Werde ich noch einmal heute im Verlauf des Tages ausprobieren.

Den Code den ich da gefunden habe ist wie gesagt schon fast perfekt. er verhindert wirklich die Eingabe eines zweiten x.
Nur der Bereich / die Bereiche müssten da angepasst werden. Da fehlt mir leider noch das Wissen...

Ja...tippe ich alle per Hand ein.
Hört sich viel an...geht aber eigentlich recht schnell.
Die Tipps werden nämlich bei kicktipp.de abgegeben. Die Auswertung geschieht aber über Excel da wir einige
Besonderheiten haben (wie z.B. den Jokertipp)...und die können mit kicktipp nicht abgedeckt werden. Smile


tobi
Hallo, 19 

probiere es mal so: 21 

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Dim a&, e&
    On Error GoTo Fin
    Select Case Target.Column Mod 5
        Case 1
            Application.EnableEvents = False
            a = Int((Target.Row - 0.5) / 9) * 9 + 2
            e = a + 8
            If Application.WorksheetFunction.CountIf(Range(Cells(a, Target.Column), Cells(e, Target.Column)), "x") > 1 Then
                Target.ClearContents
                MsgBox "Ein Glas zuviel..."
            End If
    End Select
Fin:
    Application.EnableEvents = True
End Sub
Seiten: 1 2