Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Eingabe in Bearbeitungsleiste bestätigen

Forumthread: Eingabe in Bearbeitungsleiste bestätigen

Eingabe in Bearbeitungsleiste bestätigen
10.12.2014 09:32:55
reiner
hallo Leute,
links neben der Bearbeitungsleiste werden 3 Symbole eingeblendet:
1. Abbrechen (Symbol X)
2. Eingeben (Symbol Häkchen)
3. Funktion einfügen (Symbol fx)
Nach erfolgter Eingabe in die Bearbeitungsleiste kann dieser Vorgang abgeschlossen werden:
1. durch Anklicken von "Eingeben (Symbol Häkchen)"; der Cursor im Tabellenblatt verbleibt in der bisherigen Zelle
2. durch Betätigen der "Return-Taste"; der Cursor springt in eine durch die Excel-Optionen vorgegebene Richtung.
Für die Neuberechnung ist es unerheblich welche Variante der Anwender bevorzugt; für meine nachfolgende VBA-Bearbeitung hingegen ist es schon ein entscheidendes Kriterium ob der Cursor in der vorherigen Zelle verbleibt oder ob er in die vorgegebene Richtung und somit andere Zelle springt.
Meine Frage lautet daher: wie kann ich mittels VBA-Code abfragen mit welcher der beiden Varianten die Eingabe bestätigt wurde; oder ist es alternativ möglich temporär nur eine der beiden Varianten zuzulassen?
mfg
reiner

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eingabe in Bearbeitungsleiste bestätigen
10.12.2014 09:51:20
Sheldon
Hallo Reiner,
das Worksheet.Change Ereignis liefert dir ja stets das Objekt Target mit. Frag doch einfach die Target-Zelle ab, bzw. vergleiche diese mit der activecell, falls du nur unterscheiden willst, ob die Markierung sich bewegt hat nach der Eingabe oder nicht.
Gruß
Sheldon

Anzeige
AW: Eingabe in Bearbeitungsleiste bestätigen
10.12.2014 10:07:32
fcs
Hallo Reiner,
es gibt ein spezielles Ereignis-Makro mit dem man die Eingaben in Zellen eines Tabellenblattes überwachen kann.
Die geänderte Zelle(n) werden dabei automatisch einer Variablen mit Name Target zugewiesen. Diese kann man benutzen, um die Eingaben zu prüfen oder auch weitere Aktionen auszuführen. Man muss dabei nicht mit ActiveCell arbeiten, sondern kann Target verwenden.
Man kann auch nach der Eingabe eines Werte in bestimmte Zellen die Eingabezelle wieder selektieren, um einne definierten Startpunkt für eine Folgeaktion zu haben.
Die Methode, wie die Eingabe abgeschlossen wird, spielt dabei keine Rolle.
Nachfolgend ein Beispiel.
Gruß
Franz
'Code unter dem Tabellenblatt, in dem die Eingaben gemacht werden
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Column
Case 2 'Spalte B
Select Case Target.Row
Case Is >= 2 'Zeile muss größer oder gleich 2 sein
If Target.Cells.Count = 1 Then 'Aktion nur wenn einzelne Zelle geändert wurde
Select Case Target.Value
Case 0 To 100
'Eingabe ist OK
Application.EnableEvents = False
'Folgeaktionen, wenn Eingabewert korrekt
Call prcFolgeaktion(Zelle:=Target)
Application.EnableEvents = True
Case Else
MsgBox "Zulässig sind nur Zahlen von 0 bis 100"
Application.Undo
End Select
End If
Case Else
'do nothing
End Select
Case 4 'Spalte D
Select Case Target.Row
Case 2 To 5 'Zeile muss 2 und 5 sein
If Target.Cells.Count = 1 Then 'Aktion nur wenn einzelne Zelle geändert wurde
'Eingabezelle wieder selektieren
Target.Select
End If
Case Else
'do nothing
End Select
End Select
End Sub
Sub prcFolgeaktion(Zelle As Range)
'In rechte Nachbarzelle der Eingabezelle einen Wert eintragen
Zelle.Offset(0, 1) = "Ok"
End Sub

Anzeige
AW: Eingabe in Bearbeitungsleiste bestätigen
10.12.2014 10:31:09
reiner
hallo Franz,
zunächst vielen Dank für deinen Beitrag
"..Die Methode, wie die Eingabe abgeschlossen wird, spielt dabei keine Rolle."
aber genau darauf kommt es mir an!
Es ist mir wichtig zu erkennen ob die Eingabe mit Return-Taste oder Betätigung des Häkchens erfolgte.
mfG
reiner

Anzeige
hallo Sheldon und Franz
10.12.2014 11:24:06
reiner
ich ziehe die Frage zurück da ich lediglich die Zeilennummer vor und nach der Bearbeitung miteinander vregleichen muss um zu erkennen wie die Bearbeitung abgeschlossen wurde.
vielen Dank für eure Beiträge
reiner

AW: Eingabe in Bearbeitungsleiste bestätigen
10.12.2014 11:40:13
fcs
Hallo Reiner,
die Eingabe in eine Zelle kann übrigens auch mit der TAB-Taste/Shift+TAB oder ggf. den Pfeiltasten abgeschlossen werden oder auch indem man mit der Maus in eine beliebige andere Zelle klickt.
Außerdem hängt das Cursorverhalten noch von den Einstellungen für den Blattschutz ab.
Wie die Eingabe in eine Zelle abgeschlossen wurde kann man meines Wissens nicht feststellen.
Aber:
Warum ist es Dir wichtig zu erkennen ob die Eingabe mit Return-Taste oder Betätigung des Häkchens erfolgte?
Es ist doch völlig egal!!! Die Eingabe steht in der Zelle und fertig. Wie du von da an weiter kommen kannst haben wir dir schon aufgezeigt.
Die Einstellungen, wie sich der Cursor bei Eingaben per Enter verhalten soll kann man wie folgt setzen.
'   Cursorbewegung nach Enter abschalten
Application.MoveAfterReturn = False
'   Cursorbewegung nach Enter einschalten
Application.MoveAfterReturn = True
'   Richtung der Cursorbewegung bei Enter nach Eingabe ändern/setzen
Application.MoveAfterReturnDirection = xlToRight
Application.MoveAfterReturnDirection = xlToLeft
Application.MoveAfterReturnDirection = xlDown
Application.MoveAfterReturnDirection = xlUp

Man kann auch den aktuellen Status prüfen und gwünschte Aktionen einleiten.
'Prüfung des Entertasten-Status und entsprechende Aktion
With Application
If .MoveAfterReturn = False Then
.MoveAfterReturn = True
.MoveAfterReturnDirection = xlDown
End If
End With
Gruß
Franz

Anzeige
AW: Eingabe in Bearbeitungsleiste bestätigen
10.12.2014 13:17:00
reiner
hallo Franz,
ich hatte die Frage bereits um 11.24 Uhr zurückgezogen da ich selbst eine andere Lösung erarbeitet hatte.
Hier noch eine abschließende Begründung:
In meinem Fall ist es schon ein Unterschied wie die Eingabe abgeschlossen wird da die Auswertung des nachfolgenden VBA-Codes zu unterschiedlichen Ergebnissen führen kann, abhängig von der Zeilennummer.
Bestätige ich mit "Häkchen" bleibt der Corsor in der gleichen Zelle (bzw. Zeile); bestätige ich dagegen mit "Return", springt der Cursor (bei mir) eine Zeile tiefer und dadurch wird ein falsches Ergebnis errechnet.
mfG
reiner
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Eingabe in der Bearbeitungsleiste von Excel bestätigen


Schritt-für-Schritt-Anleitung

  1. Eingabe in die Bearbeitungsleiste: Gib deinen Wert in die Bearbeitungsleiste ein.
  2. Eingaben bestätigen: Du kannst die Eingabe auf zwei Arten bestätigen:
    • Mit der Return-Taste: Dies lässt den Cursor in die nächste Zeile springen.
    • Mit dem Häkchen-Symbol: Der Cursor bleibt in der aktuellen Zelle.
  3. VBA-Code nutzen: Verwende den folgenden VBA-Code, um festzustellen, wie die Eingabe abgeschlossen wurde:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Not Intersect(Target, Me.Range("B2:B100")) Is Nothing Then
           If Target.Address = ActiveCell.Address Then
               ' Eingabe mit Häkchen
               MsgBox "Eingabe in Bearbeitungsleiste mit Häkchen bestätigt."
           Else
               ' Eingabe mit Return-Taste
               MsgBox "Eingabe in Bearbeitungsleiste mit Return-Taste bestätigt."
           End If
       End If
    End Sub

Häufige Fehler und Lösungen

  • Cursor springt unerwartet: Wenn der Cursor nach der Eingabe immer in die nächste Zelle springt, überprüfe die Einstellungen für die Cursorbewegung.
  • Eingaben werden nicht erkannt: Stelle sicher, dass das Worksheet.Change Ereignis korrekt implementiert ist und keine anderen Makros das Verhalten beeinflussen.

Alternative Methoden

  • Eingabe mit TAB-Taste: Du kannst die Eingabe auch mit der TAB-Taste oder durch Klicken in eine andere Zelle abschließen.
  • Bearbeitungsleiste aktivieren: Um die Bearbeitungsleiste zu aktivieren, gehe zu Datei > Optionen > Erweitert und aktiviere die Option „Bearbeitungsleiste immer anzeigen“.

Praktische Beispiele

  • Beispiel für Zeilenumbruch: Wenn du mehrzeilige Eingaben in der Bearbeitungsleiste machen möchtest, halte die ALT-Taste gedrückt und drücke Enter für einen Zeilenumbruch.
  • Benutzerdefinierte Nachrichten: Du kannst die Nachrichten nach der Eingabe anpassen, um dem Benutzer mitzuteilen, ob die Eingabe mit der Return-Taste oder dem Häkchen bestätigt wurde.

Tipps für Profis

  • Eingaben validieren: Nutze VBA, um Eingaben in der Bearbeitungsleiste zu validieren, bevor sie akzeptiert werden.
  • Erweiterte Cursorbewegung: Um die Richtung der Cursorbewegung nach der Eingabe zu ändern, verwende:

    Application.MoveAfterReturnDirection = xlDown ' oder xlUp, xlToRight, xlToLeft

FAQ: Häufige Fragen

1. Wie kann ich die Eingabe in der Bearbeitungsleiste bestätigen?
Du kannst die Eingabe entweder mit der Return-Taste oder mit dem Häkchen-Symbol in der Bearbeitungsleiste bestätigen.

2. Kann ich die Cursorbewegung nach der Eingabe anpassen?
Ja, du kannst die Richtung der Cursorbewegung mit VBA anpassen, indem du die Application.MoveAfterReturnDirection-Eigenschaft verwendest.

3. Was ist der Unterschied zwischen der Eingabe mit Return und Häkchen?
Die Eingabe mit Return lässt den Cursor in die nächste Zeile springen, während das Häkchen die Eingabe in der aktuellen Zelle bestätigt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige