HERBERS Excel-Forum - das Archiv
Cursor sprigt nach Eintrag ungewollt weiter
mike49

Hallo Zusammen,
wenn ich in F42 einen Dezimalwert eintrage, sprngt der Cursor immer in die Zelle G9.
Er sollte aber stehen bleiben.
Habe ich was falsch gemacht?
Gruß
mike49

trag mal eine Ganzzahl ein,ohne Dezimal..oT
robert

AW: trag mal eine Ganzzahl ein,ohne Dezimal..oT
mike49

. . . es muss mit dem Blattschutz zusammenhängen.
Wenn ich den aufhebe, klappts. Blattschutz erfolgt mit Makro.

Somit erledigt-oder?....
robert

Hi,
wenn nicht-was erwartest Du jetzt?
Deine Angaben sind nicht sehr aufschlussreich :-)
Vielleicht kannst Du eine Beispieldatei hochladen?
Gruß
robert

AW: Somit erledigt-oder?....
mike49

Hallo Robert,
du hast Recht. Ich lade die Datei mal hoch.(Der Größe wegen nur bis zum Blatt "Mär". Die anderen habe ich gelöscht).

Die Datei https://www.herber.de/bbs/user/98376.xls wurde aus Datenschutzgründen gelöscht


Teste mal Folgendes:
Trage im Blatt "Mär" in F42 die Zahl "42" ein , dann springt der Cursor nach G9.
Scrolle ich zurück und trage wieder "0" ein, passiert das Gleiche. Gerechnet und eingetragen wird jedoch richtig.
Wo liegt der Fehler?
Gruß
mike49

AW: Somit erledigt-oder?....
Daniel

Hi
du hast den Blattschutz aktiviert mit der Option, dass nur nichtgesperrte Zellen ausgewählt werden dürfen
Desweiteren hast du wahrscheinlich in den Erweiterten Optionen angegeben, dass nach einer Eingabe die Markierung nach unten in die nächste Zeile verschoben werden soll.
Wenn du jetzt in F42 einen Wert eingibst, gibt es unterhalb dieser Zelle keine weitere ungesperrte Zelle die angesprungen werden kann, also geht die Markierung in die erste ungesperrte Zelle der nächsten Spalten und das ist G9.
wenn du möchtest, dass die Markierung nach F42 auf I42 springt, musst du in den Optionen-Erweitert-Bearbeitungsoptionen als Richtung für die Markierungsverschiebung Rechts auswählen
Gruß Daniel

AW: Somit erledigt-oder?....
mike49

Hallo Daniel,
danke für deine Hilfe. Eine Markierungsverschiebung in den Optionen hatte ich nicht aktiviert.
Die Eingabezelle müsste dann ja aktiviert bleiben. Tut sie aber nicht sondern G9 wird aktiviert.
Gruß
mike49

SchutzMakro geändert...
robert

Hi,
Makro Schutz geändert:
Sub Schutz()
Dim intBlatt As Integer
Application.ScreenUpdating = False 'Bildschirmaktualisierung abschalten.
For intBlatt = 1 To Sheets.Count 'Schleife für alle Tabellenblätter:
If Sheets(intBlatt).ProtectContents = False Then Schutz_Herstellen intBlatt 'Wenn  _
ungeschützt dann Schutz wieder herstellen.
Sheets(intBlatt).Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets(intBlatt).EnableSelection = xlNoRestrictions
Next
Application.ScreenUpdating = True 'Bildschirmaktualisierung wieder einschalten.
End Sub

Gruß
robert

AW: SchutzMakro geändert...
mike49

Hallo Robert,
danke für die schnelle Hilfe.
Was muss ich eigentlich konkret machen? Ich habe das komplette Blattschutzmakro durch das deinige ersetzt. Hat nichts gebracht (hast du es getestet?).
Habe dann alternativ nur den Teil "Sub Schutz()" im Makro ersetzt. Hat aber auch nichts gebracht.
Der Cursor springt immer noch nach G9!
Das Blattschutz-Makro hätte ich aber gerne aufgeteilt nach "Sub KeinSchutz ()" und "Sub Schutz ()" behalten.
Gruß
mike49

hier Deine Datei-getestet...
robert
AW: hier Deine Datei-getestet...
mike49

Hallo Robert,
musste kurz weg.
Das klappt ja prima! Danke vielmals.
Eine Kleinigkeit hätte ich noch:
Wie kann ich das "Doppelklick-Makro" in den Blättern erweitern, dass bei Doppelklick in F42 "0" eingetragen wird?
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("E9:H39")) Is Nothing Then
Cancel = True
If Target = "" Then
Select Case Target.Column
Case 5: Target = "09:00"
Case 6: Target = "12:00"
Case 7: Target = ""
Case 8: Target = ""
End Select
Else
Target = ""
End If
End If
End Sub

Gruß
mike49

Doppelklick-Wert in Zelle......
robert

Hi,
also wie ein Wert in eine Zelle geschrieben wird, solltest Du
aber schon selbst hinkriegen :-)
Eigeninitiative und Selbsthilfe sind gefragt ;-)
Gruß
robert

AW: Doppelklick-Wert in Zelle......
mike49

Hallo Robert,
es geht ja nicht darum einen Wert in eine Zelle zu schreiben, sondern um die Erweiterung des bestehenden Makros. Hierfür sind meine VBA-Kenntnisse leider nicht ausreichend (Level: Kaum Excel/VBA-Kenntnisse).
Trotzdem: Vielen Dank für deine Hilfe.
Gruß
mike49

AW: Doppelklick-Wert in Zelle......
Matthias

Hallo
Einfach hinten "dranhängen"
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("E9:H39")) Is Nothing Then
Cancel = True
If Target = "" Then
Select Case Target.Column
Case 5: Target = "09:00"
Case 6: Target = "12:00"
Case 7: Target = ""
Case 8: Target = ""
End Select
Else
Target = ""
End If
End If
If Not Intersect(Target, Range("F42")) Is Nothing Then
Target = "0"
End If
End Sub
Gruß Matthias

AW: Doppelklick-Wert in Zelle......
mike49

Hallo Matthias,
im Prinzip funktioniert es, aber nach Doppelklick sieht man nur kurz den Wert "0", der aber sofort wieder verschwindet und die Zelle bleibt leer und der Cursor blinkt in der Zelle.
Gruß
mike49

Cancel = True
Matthias

Hallo
Das liegt nicht an der Codeerweiterung,
sondern an den Einstellungen in den Excel-Optionen der Datei.
Siehe Eweitert
  • Direkte Zellbearbeitung zulassen (ist bei Dir aktiviert?)

  • In Zellen mit Nullwert eine Null anzeigen (ist bei Dir deaktiviert?)

  • Probiers so:
    Option Explicit
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("E9:H39")) Is Nothing Then
    Cancel = True
    If Target = "" Then
    Select Case Target.Column
    Case 5: Target = "09:00"
    Case 6: Target = "12:00"
    Case 7: Target = ""
    Case 8: Target = ""
    End Select
    Else
    Target = ""
    End If
    End If
    If Not Intersect(Target, Range("F42")) Is Nothing Then
    Cancel = True
    Target = "0"
    End If
    End Sub
    
    Gruß Matthias

    AW: Cancel = True
    mike49

    Hallo Matthias,
    so klappts wie gewollt. Danke nochmals für deine Hilfe.
    Gruß
    mike49

    Cursor sprigt nach Eintrag ungewollt weiter
    mike49

    Hallo Zusammen,
    wenn ich in F42 einen Dezimalwert eintrage, sprngt der Cursor immer in die Zelle G9.
    Er sollte aber stehen bleiben.
    Habe ich was falsch gemacht?
    Gruß
    mike49

    trag mal eine Ganzzahl ein,ohne Dezimal..oT
    robert

    AW: trag mal eine Ganzzahl ein,ohne Dezimal..oT
    mike49

    . . . es muss mit dem Blattschutz zusammenhängen.
    Wenn ich den aufhebe, klappts. Blattschutz erfolgt mit Makro.

    Somit erledigt-oder?....
    robert

    Hi,
    wenn nicht-was erwartest Du jetzt?
    Deine Angaben sind nicht sehr aufschlussreich :-)
    Vielleicht kannst Du eine Beispieldatei hochladen?
    Gruß
    robert

    AW: Somit erledigt-oder?....
    mike49

    Hallo Robert,
    du hast Recht. Ich lade die Datei mal hoch.(Der Größe wegen nur bis zum Blatt "Mär". Die anderen habe ich gelöscht).

    Die Datei https://www.herber.de/bbs/user/98376.xls wurde aus Datenschutzgründen gelöscht


    Teste mal Folgendes:
    Trage im Blatt "Mär" in F42 die Zahl "42" ein , dann springt der Cursor nach G9.
    Scrolle ich zurück und trage wieder "0" ein, passiert das Gleiche. Gerechnet und eingetragen wird jedoch richtig.
    Wo liegt der Fehler?
    Gruß
    mike49

    AW: Somit erledigt-oder?....
    Daniel

    Hi
    du hast den Blattschutz aktiviert mit der Option, dass nur nichtgesperrte Zellen ausgewählt werden dürfen
    Desweiteren hast du wahrscheinlich in den Erweiterten Optionen angegeben, dass nach einer Eingabe die Markierung nach unten in die nächste Zeile verschoben werden soll.
    Wenn du jetzt in F42 einen Wert eingibst, gibt es unterhalb dieser Zelle keine weitere ungesperrte Zelle die angesprungen werden kann, also geht die Markierung in die erste ungesperrte Zelle der nächsten Spalten und das ist G9.
    wenn du möchtest, dass die Markierung nach F42 auf I42 springt, musst du in den Optionen-Erweitert-Bearbeitungsoptionen als Richtung für die Markierungsverschiebung Rechts auswählen
    Gruß Daniel

    AW: Somit erledigt-oder?....
    mike49

    Hallo Daniel,
    danke für deine Hilfe. Eine Markierungsverschiebung in den Optionen hatte ich nicht aktiviert.
    Die Eingabezelle müsste dann ja aktiviert bleiben. Tut sie aber nicht sondern G9 wird aktiviert.
    Gruß
    mike49

    SchutzMakro geändert...
    robert

    Hi,
    Makro Schutz geändert:
    Sub Schutz()
    Dim intBlatt As Integer
    Application.ScreenUpdating = False 'Bildschirmaktualisierung abschalten.
    For intBlatt = 1 To Sheets.Count 'Schleife für alle Tabellenblätter:
    If Sheets(intBlatt).ProtectContents = False Then Schutz_Herstellen intBlatt 'Wenn  _
    ungeschützt dann Schutz wieder herstellen.
    Sheets(intBlatt).Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    Sheets(intBlatt).EnableSelection = xlNoRestrictions
    Next
    Application.ScreenUpdating = True 'Bildschirmaktualisierung wieder einschalten.
    End Sub
    

    Gruß
    robert

    AW: SchutzMakro geändert...
    mike49

    Hallo Robert,
    danke für die schnelle Hilfe.
    Was muss ich eigentlich konkret machen? Ich habe das komplette Blattschutzmakro durch das deinige ersetzt. Hat nichts gebracht (hast du es getestet?).
    Habe dann alternativ nur den Teil "Sub Schutz()" im Makro ersetzt. Hat aber auch nichts gebracht.
    Der Cursor springt immer noch nach G9!
    Das Blattschutz-Makro hätte ich aber gerne aufgeteilt nach "Sub KeinSchutz ()" und "Sub Schutz ()" behalten.
    Gruß
    mike49

    hier Deine Datei-getestet...
    robert
    AW: hier Deine Datei-getestet...
    mike49

    Hallo Robert,
    musste kurz weg.
    Das klappt ja prima! Danke vielmals.
    Eine Kleinigkeit hätte ich noch:
    Wie kann ich das "Doppelklick-Makro" in den Blättern erweitern, dass bei Doppelklick in F42 "0" eingetragen wird?
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("E9:H39")) Is Nothing Then
    Cancel = True
    If Target = "" Then
    Select Case Target.Column
    Case 5: Target = "09:00"
    Case 6: Target = "12:00"
    Case 7: Target = ""
    Case 8: Target = ""
    End Select
    Else
    Target = ""
    End If
    End If
    End Sub
    

    Gruß
    mike49

    Doppelklick-Wert in Zelle......
    robert

    Hi,
    also wie ein Wert in eine Zelle geschrieben wird, solltest Du
    aber schon selbst hinkriegen :-)
    Eigeninitiative und Selbsthilfe sind gefragt ;-)
    Gruß
    robert

    AW: Doppelklick-Wert in Zelle......
    mike49

    Hallo Robert,
    es geht ja nicht darum einen Wert in eine Zelle zu schreiben, sondern um die Erweiterung des bestehenden Makros. Hierfür sind meine VBA-Kenntnisse leider nicht ausreichend (Level: Kaum Excel/VBA-Kenntnisse).
    Trotzdem: Vielen Dank für deine Hilfe.
    Gruß
    mike49

    AW: Doppelklick-Wert in Zelle......
    Matthias

    Hallo
    Einfach hinten "dranhängen"
    Option Explicit
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("E9:H39")) Is Nothing Then
    Cancel = True
    If Target = "" Then
    Select Case Target.Column
    Case 5: Target = "09:00"
    Case 6: Target = "12:00"
    Case 7: Target = ""
    Case 8: Target = ""
    End Select
    Else
    Target = ""
    End If
    End If
    If Not Intersect(Target, Range("F42")) Is Nothing Then
    Target = "0"
    End If
    End Sub
    
    Gruß Matthias

    AW: Doppelklick-Wert in Zelle......
    mike49

    Hallo Matthias,
    im Prinzip funktioniert es, aber nach Doppelklick sieht man nur kurz den Wert "0", der aber sofort wieder verschwindet und die Zelle bleibt leer und der Cursor blinkt in der Zelle.
    Gruß
    mike49

    Cancel = True
    Matthias

    Hallo
    Das liegt nicht an der Codeerweiterung,
    sondern an den Einstellungen in den Excel-Optionen der Datei.
    Siehe Eweitert
  • Direkte Zellbearbeitung zulassen (ist bei Dir aktiviert?)

  • In Zellen mit Nullwert eine Null anzeigen (ist bei Dir deaktiviert?)

  • Probiers so:
    Option Explicit
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Range("E9:H39")) Is Nothing Then
    Cancel = True
    If Target = "" Then
    Select Case Target.Column
    Case 5: Target = "09:00"
    Case 6: Target = "12:00"
    Case 7: Target = ""
    Case 8: Target = ""
    End Select
    Else
    Target = ""
    End If
    End If
    If Not Intersect(Target, Range("F42")) Is Nothing Then
    Cancel = True
    Target = "0"
    End If
    End Sub
    
    Gruß Matthias

    AW: Cancel = True
    mike49

    Hallo Matthias,
    so klappts wie gewollt. Danke nochmals für deine Hilfe.
    Gruß
    mike49

    Bewerten Sie hier bitte das Excel-Portal