Registriert seit: 12.03.2023
	
Version(en): 365
	
 
	
	
		Hallo und guten Tag.
Normalerweise arbeite ich nur geschäftlich mit Excel, hatte jetzt aber mal aus Spaß einen Kniffelblock erstellt. Einen Screenshot füge ich bei.
 
   
Wenn Spieler1 einen Wert eingegeben hat soll sein Block automatisch gesperrt werden, so dass Spieler2 seine Eingabe machen kann und umgekehrt. Gibt es eine Lösung dafür? Zu beachten ist, dass die Werte in den Feldern Full House, kleine Straße, große Straße und Kniffel durch Doppelklick automatisch eingegeben werden (VBA-Script), während die anderen durch die unterschiedlichen Würfe manuell eingegeben werden müssen. Diese Werte können entweder 1 oder 2 stellig sein. In Teil 1 werden diese Eingaben durch die Datenüberprüfung auf Plausibilität geprüft.
Keine einfache Aufgabe, denke ich mal. Ich habe es wochenlang versucht und habe bisher keine Lösung gefunden. 

  Vielleicht jemand von euch? 
Herzliche Grüße
Norbert
	
 
 
	
	
			26865 
			
				Nicht registrierter Gast
								
				
			
	
	
		
 
	
 
	
	
		Wenn ohnehin VBA am Werk ist: 
- Blatt schützen mit UserinterfaceOnly auf True
- Zellen Spieler 1 auf Locked=False setzen, Spieler 2 auf Locked= True
- Change-Ereignis abfangen, wenn (gültiger) Eintrag, dann
- Zellen Spieler 1 auf Locked=True setzen, Spieler 2 auf Locked= False
- usw.
Kniffel war hier vor kurzem Thema, falls du mal schauen möchtest, was andere für Ideen hatten: 
https://www.clever-excel-forum.de/Thread...-einfuegen
	 
 
	
	
			26865 
			
				Nicht registrierter Gast
								
				
			
	
	
		
 
	
 
	
	
		Simple Codeskizze:
Code:
'Allgemeines Modul
Option Explicit
Public Sub PlayersTurn(ByRef PlayerNumber As Long)
Dim PlayerAktiv As Range, PlayerInaktiv As Range
Set PlayerAktiv = IIf(PlayerNumber = 1, Range("Spieler1"), Range("Spieler2"))
Set PlayerInaktiv = IIf(PlayerNumber = 1, Range("Spieler2"), Range("Spieler1"))
If Application.CountA(PlayerAktiv) < PlayerAktiv.Cells.Count Then PlayerAktiv.SpecialCells(xlCellTypeBlanks).Locked = False
PlayerAktiv.Interior.ColorIndex = 4
PlayerInaktiv.Locked = True
PlayerInaktiv.Interior.ColorIndex = 3
End Sub
Code:
'DieseArbeitsmappe
Option Explicit
Private Sub Workbook_Open()
Range("Spieler1").Worksheet.Protect userinterfaceonly:=True
Call PlayersTurn(PlayerNumber:=1)
End Sub
Code:
'Tabellenblatt des Kniffelblocks
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case True
   Case Not Intersect(Target, Range("Spieler1")) Is Nothing
      Call PlayersTurn(PlayerNumber:=2)
   Case Not Intersect(Target, Range("Spieler2")) Is Nothing
      Call PlayersTurn(PlayerNumber:=1)
End Select
End Sub
Ich habe die Bereiche für die Einträge benannt als "Spieler1" und "Spieler2", da ich deine Mappe trotz deines Bildchens nicht kenne. Selbstredend kannst du die auch im Code oder anders definieren.
	
 
 
	
	
	
		
	Registriert seit: 16.08.2017
	
Version(en): 2007 / 2010 / Web
	
 
	
		
		
		14.03.2023, 12:04 
(Dieser Beitrag wurde zuletzt bearbeitet: 14.03.2023, 12:26 von Elex.)
		
	 
	
		Moin
Alternativ von @rate mit:
https://www.clever-excel-forum.de/Thread...ht=KniffelIch würde hier auf die Zurücktaste verzichten und gleich nach Eingabe der Zahl automatisch schließen lassen.
Die Verwendung der Vielzahl an UF wäre auch noch mal zu überdenken. 

Gruß Elex
	
 
 
	
	
	
		
	Registriert seit: 29.09.2015
	
Version(en): 2030,5
	
 
	
		
		
		14.03.2023, 12:17 
(Dieser Beitrag wurde zuletzt bearbeitet: 14.03.2023, 12:18 von snb.)
		
	 
	
		1. Daten besser strukturieren (nicht alsPpapier, doch als Database)
2. Daten unsichtbar für Spieler
3. Ein Userform verwenden 
4. Ein separates Arbeitsblatt oder Userform zum Zeigen von Ergebnisse.
	
	
	
	
	
 
 
	
	
	
		
	Registriert seit: 12.03.2023
	
Version(en): 365
	
 
	
	
		Erst einmal vielen Dank für die schnellen Antworten. 

  Ich werde dann mal die dargestellten Lösungswege versuchen.
Die Originaltabelle sowie eine Erläuterung dazu schicke ich mit. Ihr könnt sie gerne selber verwenden, anpassen oder was ihr wollt. 
 
 
 Kniffelblock-v01.xlsm
  Kniffelblock-v01.xlsm (Größe: 105,78 KB / Downloads: 3)
