Private Sub Worksheet_Calculate()
' diese Variante kostet natürlich Rechenleistung
' da bei jeder Eingabe der Bereich Formatiert wird
' Fülfarbe
' für Schrift RaZelle.Font.ColorIndex
Dim RaBereich As Range, RaZelle As Range
' Bereich der Wirksamkeit
Set RaBereich = Range("B3:Y33,AD3:AZ33,BE3:CA33,C38:Y68,AD38:AZ68,BE38:CA68,C73:Y103,AD73: _
AZ103,BE73:CA103")
' noch mehr Bereiche
' Set RaBereich = Union(Range("C7:I26"), Range("L7:R26"), Range("U7:AA26"), Range("AD7:AJ26") _
)
' ab Vesion XP braucht der Schutz nicht aufgehoben werden
' Formatierung bei Schutz kann über Dialog Schutz eingestellt werden
For Each RaZelle In RaBereich
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
Select Case RaZelle.Value
Case "F"
' hellgelb
RaZelle.Interior.ColorIndex = 36
Case "M"
' hellgrün
RaZelle.Interior.ColorIndex = 35
Case "N"
' helltürkis
RaZelle.Interior.ColorIndex = 34
Case Else
' Keine
RaZelle.Interior.ColorIndex = xlNone
End Select
End If
Next RaZelle
Set RaBereich = Nothing
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
Dim Zahl As Range
Dim Spiel As Range
Dim Tipp As Range
If Target.Column > Range("CR1").Column Then Exit Sub
If Target.Column < Range("CM1").Column Then Exit Sub
For Each Zelle In Target
If Cells(Zelle.Row, "CK").Value Like "Spiel*" Then
Set Spiel = Range(Cells(Zelle.Row, "CK").Value)
Set Tipp = Cells(Zelle.Row, "CM").Resize(1, 6)
For Each Zahl In Spiel
If IsNumeric(Zelle.Value) Then
Select Case WorksheetFunction.CountIf(Tipp, Zahl.Value)
Case 0
Zahl.Borders(xlDiagonalDown).LineStyle = xlNone
Zahl.Borders(xlDiagonalUp).LineStyle = xlNone
Case 1
With Zahl.Borders(xlDiagonalDown)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = 1
End With
With Zahl.Borders(xlDiagonalUp)
.LineStyle = xlContinuous
.Weight = xlMedium
.ColorIndex = 1
End With
Case Else
MsgBox "Tipp doppelt"
End Select
End If
Next
End If
Next
End Sub
folgende Vorarbeiten sind noch zu verrichten:
- jedem Spielfeld 1-49 musst du einem NAMEN zuweisen. Dieser Namen müssen immer mit "Spiel" beginnen, also z.B. "Spiel_1"
- dieser Name muss in der Spalte CK vor dem jeweiligen Tipp stehen
Gruß, Daniel
folgende Vorarbeiten sind noch zu verrichten:
- jedem Spielfeld 1-49 musst du einem NAMEN zuweisen. Dieser Namen müssen immer mit "Spiel" _
beginnen, also z.B. "Spiel_1"
- dieser Name muss in der Spalte CK vor dem jeweiligen Tipp stehen
Gruß, Daniel
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect([D2:AH2,D5:AF5,D8:AH8,D11:AG11,D14:AH14,D17:AG17,D20:AH20,D23:AH23,D26:AG26, _
D29:AH29,D32:AG32,D35:AH35], Target) Is Nothing Then
If Target.Interior.ColorIndex = 3 Then
Target.Interior.ColorIndex = x1None
Else
Target.Interior.ColorIndex = 3
End If
Cancel = True
End If
End Sub