Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1396to1400
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige