Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1560to1564
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
Cursor in msoControlEdit Field setzen lassen
02.06.2017 16:55:03
Andreas
Hallo VBA Freunde,
ich möchte mir eine Suchprozedur programmieren, welche ihre Eingaben aus einem CommandBar msoControlEdit erhält. Hierzu wäre es günstig, wenn ich über ein OnKey Event den Focus, bzw. den Cursor der Maus (Ist dies das gleiche?) IN das msoControlEdit setzen könnte, so daß jeder Tastaturanschlag dort erscheint. Aber ich bekomme das nicht hin. In der beigefügten Datei habe ich einen kleinen CommandBar, dessen msoControlEdit über F1 den .SetFocus erhält. Aber wenn ich dann etwas tippe, erscheint es in der ActiveCell und NICHT im msoControlEdit.
https://www.herber.de/bbs/user/113989.xlsm
Ist es überhaupt möglich, den Cursor via VBA in ein msoControlEdit setzen zu lassen?
Vielen Dank für Eure Aufmerksamkeit und Hinweise vorab! Allen ein schönes Pfingstwochenende.
Beste Grüße aus Berlin, Andreas Hanisch

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Cursor in msoControlEdit Field setzen lassen
02.06.2017 17:17:05
mmat
Hallo,
ich fürchte es geht nicht. Das Steuerelement kennt zwar eine "Setfocus"-Prozedur, diese verhält sich aber nicht wie erwartet (das hast du ja schon gemerkt).
>> Ist es überhaupt möglich, den Cursor via VBA in ein msoControlEdit setzen zu lassen?
Leider geht das scheinbar nur mit der Maus.
AW: Cursor in msoControlEdit Field setzen lassen
02.06.2017 21:02:23
Martin
Hallo Andreas,
mit nachfolgendem Code klappt es (habe es aber nur unter Excel 2003 getestet), obwohl ich die SendKeys-Methode als sehr unsauber empfinde und deshalb eigentlich ungern empfehle:
Sub SetFocusTest()
CommandBars("Andreas").Controls(1).SetFocus
SendKeys "{Tab}"
SendKeys "{Tab}"
End Sub
Viele Grüße
Martin
Anzeige
AW: Cursor in msoControlEdit Field setzen lassen
02.06.2017 22:28:22
Martin
Hallo Andreas,
nur zur Sicherheit, falls du mehrere Controls in der CommandBar verwendest:
Sub SetFocusTest()
Dim ctl As CommandBarControl
For Each ctl In CommandBars("Andreas").Controls
If ctl.TooltipText = "SetFocusTest" Then
ctl.SetFocus
SendKeys "{Tab}"
SendKeys "+{Tab}"
Exit For
End If
Next
End Sub

Viele Grüße
Martin
AW: Cursor in msoControlEdit Field setzen lassen
06.06.2017 14:31:52
Andreas
Hallo mmat und Martin,
vielen Dank für Eure Antworten! Ich habe dergleichen leider befürchtet... Und über SendKeys zu arbeiten erscheint mir aufgrund anderer Erfahrungen auch als unsauber. Ich werde mich nach Alternativen umsehen und es vermutlich über eine Inputbox realisieren. Aber dank Eurer Rückmeldung kann ich nun von der Kombination msoControlEdit & SetFocus ablassen. Das ist auch viel Wert!
Beste Grüße aus Berlin, Andreas Hanisch
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige