Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zahlenwerte aus Eingabebereich abspeichern
#1
Hallo an die Expertenrunde,
habe ein neues Projekt begonnen und könnte mal wieder Hilfe gebrauchen.
Soll diesmal ein Scorer für ein Dart-Cricket werden.
Habe einen Eingabebereich M7:O7 für "Spieler 1" und M8:O8 für "Spieler 2" für jeweils 3 Zahlenwerte, sowie eine leere Zelle M9 
Die Eingabe erfolgt über eine Funktastatur (also nur der Zahlenblock zur Eingabe ).
Nun möchte ich gerne die Werte von Spieler 1 in Spalte P8:P300 und die von Spieler 2 in Spalte Q8:Q300 speichern.
Nach der letzten Eingabe ist der Cursor jetzt in Zelle M9. ( Damit man evtl. nochmal korrigieren kann wenn man sich vertippt hat)
Wenn ich jetzt Enter drücke sollen alle Eingaben in M7:O8 gelöscht werden und die nächste Runde kann eingegeben werden, der Cursor ist also wieder in M7.
Die neuen Werte sollen dann jeweils wieder ans Ende der Spalte P bzw. Q eingefügt werden und das dann immer so weiter
(die Cursorsteuerung ist jetzt nicht das Problem das funktioniert)
Hoffe habe mein Anliegen verständlich beschrieben.
Sage schon mal vielen Dank im Voraus 
Gruß Didi
Antworten Top
#2
Hallo Didi,

Code:
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
        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(Rows.Count, 17).End(xlUp)
            .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

Gruß Uwe
Antworten Top
#3
Hallo Didi

Ich habe da auch was gebastelt und hoffe, ich habe Dich richtig verstanden – auch wenn ich von Dart keine Ahnung habe.
Ich hänge Dir eine Datei an, in der hoffentlich das geschieht, was Du gerne hättest: Die Einzelresultate der beiden Spieler werden von M7:O8 übertragen jeweils ans Ende der Spalten P:Q. Der Bereich M7:O8 wird dann gelöscht.
 
Eine Aenderung habe ich gemacht: Du sagst: "Wenn ich jetzt Enter drücke, sollen …". Das ist in meinen Augen viel zu "gefährlich". Wie oft drückt man Enter, ohne es zu bedenken!
Ich habe es so gemacht: Wenn Du in M9 die Zahl 999 eingibst (statt Enter drücken), dann soll die Prozedur ablaufen.
 
Ich hoffe, das hilft Dir, und grüsse Dich freundlich
Niclaus


Angehängte Dateien
.xlsm   DartTest.xlsm (Größe: 20,29 KB / Downloads: 3)
Antworten Top
#4
Hallo Niclaus,
vielen Dank erst mal für dein bemühen.
Das was du mir da geschickt hast ist schon mal Super.
Ich möchte aber das der Cursor sich nur im Eingabebereich (M7:O8 und M9) bewegt, habe in diesen Zellen also den Schutz rausgenommen und dann das ganze Blatt geschützt.
Hacken ist bei nicht gesperrte Zellen auswählen drin und bei gesperrte Zellen auswählen draußen.
wenn ich jetzt in M9  deine 999 eingebe  dann kommt  Laufzeitfehler 1004 (Anwendung- oder objektdefinierter Fehler).
Wenn ich den Blattschutz raus nehme, dann funktioniert deine Lösung prima aber der Cursor bleibt dann nicht mehr im Eingabebereich.
Gruß Didi
Antworten Top
#5
Hallo Uwe,
auch an dir erstmal vielen Dank für dein Lösungsvorschlag.
Es funktioniert so lange ich den Blattschutz nicht aktiv habe, bei aktivierten Blattschutz  kommt dann eine Fehlermeldung.
Wenn ich den Blattschutz aufhebe, dann bleibt der Cursor nicht im Eingabebereich, er sollte aber von O7 nach M8 und von O8 nach M9 springen und das macht er nur wenn der Blattschutz aktiv ist.
Wäre mir auch wichtig das nur der Eingabebereich nicht gesperrt ist.
Gruß Didi
Antworten Top
#6
Hallo Didi,

P8:Q300 sind entsperrt?

Gruß Uwe
Antworten Top
#7
Hallo Didi
Ich schicke Dir die Version1.
Alle Zellen ausser M7:O8;M9 sind gesperrt.
Wenn Du in M9 die Zahl 999 eingibst, wird in den Spalten P:Q die Sperrung deaktiviert. Die Werte von M7:O8 werden nach P:Q übertragen. Die Spalten P:Q werden wieder gesperrt.
Ich hoffe, das ist ein Schritt weiter in die richtige Richtung.
Grüsse Niclaus


Angehängte Dateien
.xlsm   DartTest_V1.xlsm (Größe: 23,5 KB / Downloads: 2)
[-] Folgende(r) 1 Nutzer sagt Danke an Niclaus für diesen Beitrag:
  • DartDidi
Antworten Top
#8
Hallo Uwe,
Bei deinem Code speichert er es für Spieler 1 ab der Spalte Q2 und für Spieler 2 ab der Spalte R2 ab wenn diese Spalten entsperrt sind.
Der Cursor springt dann aber auch von Spalte O (meinem Eingabebereich) nach Spalte Q
Hab mal die Datei Test 2 angehängt
Gruß Didi

Hallo Uwe,
Danke für dein Bemühen, es ist schon fast perfekt, aber der Cursor bleibt in Zeile 7 
( er springt von O7 nach P7 usw.)
Er sollte nach der Eingabe von O7 nach M8  dann von O8 nach M9 und dann wegen meiner nach der Eingabe von  999 dann die Werte eintragen und wieder nach M7 zurück.
Wenn ich den Cursor mit den Pfeiltasten korrigiere dann klappt es so wie ich es meinte
Gruß Didi


Angehängte Dateien
.xlsm   Test 2.xlsm (Größe: 15,65 KB / Downloads: 2)
Antworten Top
#9
Hallo Didi,

dann sperre die Zellen wieder und probiere es mit folgendem Code:

Code:
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

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • DartDidi
Antworten Top
#10
Hallo Uwe,
das scheint zu funktionieren.
Bin begeistert, ein großes Dankeschön an alle die sich an der Lösung beteiligt haben.
Gruß von Didi

Danke auch an dir, Problem ist gelöst
Gruß Didi
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste