09.03.2021, 13:51
Hallo,
wäre schön, wenn mir nochmal jemand für 2 Dinge behilflich sein könnte.
Füge am Ende mal einen Code ein der etwas bearbeitet werden müsste.
Ich versuche mal kurz zu erklären wie ich es bräuchte. (es soll mal ein Programm für Dart-Cricket werden)
So wie der Code jetzt ist werden die Eingaben für Spieler 1 (M7:O7) nach Spalte P8:P...... und die für Spieler 2 (M8:O8) nach Spalte Q8:Q... kopiert
nachdem in Zelle M9 die Eingabetaste gedrückt wurde. (alle Werte werden zusammen übertragen)
Es sollte aber nach jeder Eingabe gleich der jeweilige Wert einzeln nacheinander übertragen werden, also der Wert von M7 nach Spalte P..., dann der Wert von N7 nach P.....
und O7 nach P... sowie M8;N8und O8 jeweils nacheinander nach Spalte Q8....
In Zelle M9 sollen dann alle Eingaben in M7:O8 gelöscht werden damit es wieder von vorne los gehen kann.
Dann habe ich noch folgendes Problem zu lösen, damit das ganze Projekt auch richtig funktioniert.
Habe einen Bereich erstellt (T11:AN11) in dem für dieses Spiel die zulässigen Werte eingetragen sind, andere als diese Werte können nicht im Eingabebereich M7:O8 verwendet werden.
Diese Werte sollen jetzt so nach und nach unter bestimmten Bedingungen entfernt werden.
Wenn jetzt z.B. in AI3 eine 1 steht dann sollen die Werte in T11:V11 entfernt werden. ( das bedeutet alle Spieler haben das 15er Segment mindestens 3 mal getroffen, somit soll keine Eingabe der Werte 15;30;45 mehr möglich sein)
Wenn (AI5>2 und BC5>0) dann soll V11 (45) entfernt werden.
Da kommen aber noch so einige Bedingungen dazu, wäre schön da mal einen Code zu bekommen den ich dann auch selber nach meinen Bedürfnissen anpassen kann.
Hoffe es verständlich erklärt zu haben und bedanke mich schon mal für eure Unterstützung
Gruß Didi
hier der Code der zu bearbeiten wäre und im Anhang das Projekt um das es mir geht
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static bolM9 As Boolean
With Target.Cells()
If .Address = "$M$9" Then
bolM9 = True
Else
If bolM9 Then
bolM9 = False
Me.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
If Application.WorksheetFunction.CountBlank(Range("M7:O8")) Then
MsgBox "Da fehlt noch was!"
Application.EnableEvents = False
Range("M7:O8").SpecialCells(xlCellTypeBlanks).Cells(1).Select
Application.EnableEvents = True
Else
With Cells(Application.Max(7, Cells(Rows.Count, 16).End(xlUp).Row), 16)
.Offset(1, 0).Value = Range("M7").Value
.Offset(2, 0).Value = Range("N7").Value
.Offset(3, 0).Value = Range("O7").Value
.Offset(1, 1).Value = Range("M8").Value
.Offset(2, 1).Value = Range("N8").Value
.Offset(3, 1).Value = Range("O8").Value
End With
Range("M7:O8") = ""
Range("M7").Select
End If
End If
End If
End With
End Sub
wäre schön, wenn mir nochmal jemand für 2 Dinge behilflich sein könnte.
Füge am Ende mal einen Code ein der etwas bearbeitet werden müsste.
Ich versuche mal kurz zu erklären wie ich es bräuchte. (es soll mal ein Programm für Dart-Cricket werden)
So wie der Code jetzt ist werden die Eingaben für Spieler 1 (M7:O7) nach Spalte P8:P...... und die für Spieler 2 (M8:O8) nach Spalte Q8:Q... kopiert
nachdem in Zelle M9 die Eingabetaste gedrückt wurde. (alle Werte werden zusammen übertragen)
Es sollte aber nach jeder Eingabe gleich der jeweilige Wert einzeln nacheinander übertragen werden, also der Wert von M7 nach Spalte P..., dann der Wert von N7 nach P.....
und O7 nach P... sowie M8;N8und O8 jeweils nacheinander nach Spalte Q8....
In Zelle M9 sollen dann alle Eingaben in M7:O8 gelöscht werden damit es wieder von vorne los gehen kann.
Dann habe ich noch folgendes Problem zu lösen, damit das ganze Projekt auch richtig funktioniert.
Habe einen Bereich erstellt (T11:AN11) in dem für dieses Spiel die zulässigen Werte eingetragen sind, andere als diese Werte können nicht im Eingabebereich M7:O8 verwendet werden.
Diese Werte sollen jetzt so nach und nach unter bestimmten Bedingungen entfernt werden.
Wenn jetzt z.B. in AI3 eine 1 steht dann sollen die Werte in T11:V11 entfernt werden. ( das bedeutet alle Spieler haben das 15er Segment mindestens 3 mal getroffen, somit soll keine Eingabe der Werte 15;30;45 mehr möglich sein)
Wenn (AI5>2 und BC5>0) dann soll V11 (45) entfernt werden.
Da kommen aber noch so einige Bedingungen dazu, wäre schön da mal einen Code zu bekommen den ich dann auch selber nach meinen Bedürfnissen anpassen kann.
Hoffe es verständlich erklärt zu haben und bedanke mich schon mal für eure Unterstützung
Gruß Didi
hier der Code der zu bearbeiten wäre und im Anhang das Projekt um das es mir geht
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static bolM9 As Boolean
With Target.Cells()
If .Address = "$M$9" Then
bolM9 = True
Else
If bolM9 Then
bolM9 = False
Me.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
If Application.WorksheetFunction.CountBlank(Range("M7:O8")) Then
MsgBox "Da fehlt noch was!"
Application.EnableEvents = False
Range("M7:O8").SpecialCells(xlCellTypeBlanks).Cells(1).Select
Application.EnableEvents = True
Else
With Cells(Application.Max(7, Cells(Rows.Count, 16).End(xlUp).Row), 16)
.Offset(1, 0).Value = Range("M7").Value
.Offset(2, 0).Value = Range("N7").Value
.Offset(3, 0).Value = Range("O7").Value
.Offset(1, 1).Value = Range("M8").Value
.Offset(2, 1).Value = Range("N8").Value
.Offset(3, 1).Value = Range("O8").Value
End With
Range("M7:O8") = ""
Range("M7").Select
End If
End If
End If
End With
End Sub