Modeless Form: Focus zurück auf das Sheet bringen

29/01/2009 - 08:20 von Andreas Reithmayr | Report spam
Hallo Leute,

ich habe ein "modeless" Formular, das nach einer Prüfung Zellen mit falscher
Eingabe in einer Listbox auflistet. Bei einem Doppelklick in diesem Formula
(in der Listbox) wird im Excel-Sheet die entsprechende Zelle selektiert.
Soweit alles ok.
Aber: Wenn ich dann den Wert in der selektierten Zelle àndern möchte und
einfach zu tippen beginne, passiert nix! Grund: Das Formular hat immer noch
den Focus! D.h. ich muss erst mit der Maus das Excel-Sheet aktivieren, um die
Zelle zu àndern. Und das ist nervig, weil man dann meist auch eine andere
Zelle selektiert ... !

Wie kann ich den Focus auf das Excel-Sheet bringen, so dass Eingaben über
die Tastatur, trotz dem modeless Formular, gleich im Sheet (in der bereits
aktiven Zelle) ankommen? Habe bereits "Sheets("Sheet1").Activate" oder
"Windows("Book1").Activate" versucht, ohne Erfolg ... :-(

(Excel 2003)

Vielen Dank im Voraus für Eure Hilfe,

Andreas
 

Lesen sie die antworten

#1 Alexander Wolff
29/01/2009 - 11:48 | Warnen spam
Die Tastatur von Andreas Reithmayr wurde wie folgt gedrückt:
Hallo Leute,

ich habe ein "modeless" Formular, das nach einer Prüfung Zellen mit
falscher Eingabe in einer Listbox auflistet. Bei einem Doppelklick in
diesem Formula (in der Listbox) wird im Excel-Sheet die entsprechende
Zelle selektiert. Soweit alles ok.
Aber: Wenn ich dann den Wert in der selektierten Zelle àndern möchte
und einfach zu tippen beginne, passiert nix! Grund: Das Formular hat



Windows ist fensterorientiert. Ein Fensterwechsel ist da nur für bestimmte
Vorgànge gedacht (Form, Dialog) und wird meist hierarchisch abgearbeitet: A
öffnet B, B schließt, A öffnet C usw.

immer noch den Focus! D.h. ich muss erst mit der Maus das Excel-Sheet
aktivieren, um die Zelle zu àndern. Und das ist nervig, weil man dann
meist auch eine andere Zelle selektiert ... !

Wie kann ich den Focus auf das Excel-Sheet bringen, so dass Eingaben
über die Tastatur, trotz dem modeless Formular, gleich im Sheet (in
der bereits aktiven Zelle) ankommen? Habe bereits
"Sheets("Sheet1").Activate" oder "Windows("Book1").Activate"
versucht, ohne Erfolg ... :-(



Vielleicht hilft das, was Du auch manuell tun könntest: Alt-Tab einmal
drücken und als Makro aufzeichnen. Wahrscheinlich kommt dann ein
unerwünschtes Ergebnis, so dass Du - ganz dreckig - mit Sendkeys arbeiten
müsstest, ausgelöst durch ein Ereignis.

Aber bedenke: Wann soll Dein Formular eigentlich "weitermachen"? Dafür musst
Du nàmlich genauso manuell wieder dorthin zurückkehren. Deshalb ist der
umgekehrte Weg so vielleicht auch nicht vorgesehen.
Moin+Gruss Alexander - MVP for MS Excel - www.xxcl.de - mso2000sp3 --7-2

Ähnliche fragen