Anzeige
Archiv - Navigation
1780to1784
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

SendKeys in falscher Zelle

SendKeys in falscher Zelle
14.09.2020 15:15:01
Alexander
Hallo zusammen,
ich habe nun schon einige Zeit versucht, mein Problem mit SendKeys auch mit Hilfe von Google zu lösen, allerdings ohne Erfolg.
Ich habe eine Tabelle mit einer Zelle für die eine Datenvalidierung existiert. Per VBA habe ich realisiert, dass der User nur in die Zelle klicken muss (SendKeys "%(DOWN)"), damit dass Dropdown kommt (vermeidet einen zusätzlichen Klick).
Bei Änderung der Auswahl wird eine Change-Ereignis ausgelöst, dass eine andere Zelle auswählt. Bis hierhin funktioniert auch alles. Klick der User aber in die Zelle und drückt nach Anzeige der Auswahlliste ESCAPE und editiert den Wert in der Zelle per F2 manuell, so wird auch die Zielzelle ausgewählt aber auch dort SendKeys ausgeführt und damit eine (leere) Dropdown-Liste angezeigt (siehe auch beigefügte Beispieldatei).
Gibt es eine Möglichkeit, dass zu verhindern?
Viele Grüße,
Alex

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SendKeys in falscher Zelle
14.09.2020 15:46:37
ChrisL
Hi Alex
Ich konnte dein Problem nur rekonstruieren, wenn ich eine fehlerhafte Eingabe tätige z.B. "XXX" und dann "Wiederholen" bzw. "Abbrechen" drücke. Nach meiner Interpretation wird durch die Fehleingabe das Change-Ereignis erneut ausgelöst, jedoch kann SendKeys aufgrund der offenen Fehlermeldung nicht abgeschickt werden und damit erscheint es dann irgendwie verzögert, sobald der Change erfolgreich abgeschlossen wird.
Vielleicht funktioniert es hiermit:
Public rng As Range
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("$I$5").Address Then
On Error Resume Next
Application.EnableEvents = False
Cells(1, 9).Activate
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not rng Is Nothing And Target.Address = "$I$5" Then _
If rng.Address = "$I$5" Then Exit Sub
Set rng = Target
Select Case Target.Address
Case Range("$I$5").Address
SendKeys "%{DOWN}", True
End Select
End Sub
cu
Chris
Anzeige
AW: SendKeys in falscher Zelle
14.09.2020 15:55:31
Alexander
Hallo Chris,
schon mal danke für Deine Antwort. Obgleich ich sie nicht ganz verstehe. Das Beispiel "funktioniert" wie beschrieben ohne Fehleingaben. Schreibe ich manuell in die Auswahlzelle z.B. "B" dann wird SendKeys in der Zielzelle ausgeführt. Habe in der Zwischenzeit im SelectionChange-Ereignis am Anfang noch EnableEvents=False und am Ende wieder auf True eingebaut. Allerdings mit gleichem Ergebnis.
Viele Grüße,
Alex
AW: SendKeys in falscher Zelle
14.09.2020 16:00:50
Alexander
Zusätzlich habe ich noch herausgefunden, dass bei manueller Eingabe zunächst (logischerweise) das Change-Ereignis ausgelöst wird. Darin wird die Zielzelle aktiviert, das löst wiederum das SelectionChange-Ereignis in der Zielzelle aus. Soweit so gut. Und jetzt wird es interessant, danach wird noch mal SelectionChange ausgeführt aber nun in der Auswahlzelle. Und dadurch auch SendKeys. Und das verstehe ich nicht.
Anzeige
AW: SendKeys in falscher Zelle
14.09.2020 16:11:37
ChrisL
Hi Alex
Es scheint wir haben unterschiedliche Ausgangslagen. Excel-Version stimmt überein, dann muss es an der Datei liegen. Jedenfalls enthält die Musterdatei in I1 gar keine Gültigkeitsprüfung (die habe ich mir zu Testzwecken selber eingefügt).
Hast du den Code getestet?
Eigentlich sollte dieser generell verhindern (Fehleingabe hin oder her), dass SendKeys zweifach ausgeführt wird, bevor nicht ein Wechsel der Selektion stattgefunden hat.
Ansonsten bitte die Frage wieder als offen kennzeichnen, da ich das Problem wie von dir beschrieben nicht rekonstruieren kann.
cu
Chris
Anzeige
AW: SendKeys in falscher Zelle
14.09.2020 16:35:11
Alexander
Hallo Chris,
sorry, dann habe ich die Ausgangslage wohl nicht eindeutig erklärt. In der Zielzelle I1 gibt es keine Auswahlliste, nur in I5. Das Verhalten tritt wie folgt auf:
- Klick in I5, es öffnet sich das Dropdown
- Escape drücken
- manuell in I5 einen gültigen Wert (A,B oder C) eingeben
- I1 wird aktiviert und dort ein leeres Dropdown angezeigt
Viele Grüße,
Alex
AW: SendKeys in falscher Zelle
14.09.2020 16:44:48
ChrisL
Hi Alex
- I1 wird aktiviert und dort ein leeres Dropdown angezeigt
Dieses leere Dropdown kommt bei mir nicht.
Sorry, bin mit meinem Latein am Ende.
cu
Chris
AW: SendKeys in falscher Zelle
14.09.2020 16:52:12
Alexander
Hallo Chris,
kein Problem, trotzdem danke für Deine Zeit. Ich habe es mittlerweile auch aufgegeben und zumindest eine Möglichkeit gefunden, das Problem zu umgehen. Heute schon viel zu viel Zeit in das Thema investiert... :-)
Viele Grüße,
Alex
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige