PDA

Vollständige Version anzeigen : Excel - KeyDown, KeyPress etc.


krixxie
06.05.2009, 09:36
Hallo Zusammen,

ich befinde mich in der Excel - VBA Umgebung.
Hier möchte ich auf einer Userform, auf der mehrere Steuerelemente auch vorhanden sind, das KeyDown-Event nutzen. Problem bei der ganzen Sache ist, dass sobald Steuerelemente auf dieser Userform sind, das KeyDown-Event nicht mehr anspringt.
Bei Access wie auch VB kann man das mit der Eigenschaft .KeyPreview handeln, jedoch nicht bei Excel-VBA.

Kennt jemand diese Problematik oder weiss einen Workaround ?!

Lieben Dank,
Grüsse

IngGi
06.05.2009, 16:04
Hallo krixxie,

sobald ein Steuerelement auf dem Userformular ist, hat nicht mehr das Userformular selbst, sondern dieses Steuerelement den Fokus, wenn das Userformular mittels der Show-Methode angezeigt wird. Sind mehrere Steuerelemente auf dem Userformular, kann man zwischen diesen hin- und herspringen. Das Userformular selbst erhält den Fokus aber nicht mehr.

Tastenanschläge werden natürlich an das aktive Element übergeben. Die aktiven Elemente sind aber nun, wie gesagt, die Steuerelemente, bzw. das Steuerelement, das gerade den Fokus hat. Ich habe mir die KeyPreview-Eigenschaft in Access einmal angesehen. Wenn ich das richtig verstehe, gibt es in Access damit die Möglichkeit, die Tastenanschläge indirekt über das Formular an das aktive Steuerelement zu leiten. Dadurch muss man die Ereignisprozeduren nicht für jedes Steuerelement auf dem Formular einzeln programmieren, sondern kann das für alle Steuerelemente des Formulares zentral auf Formularebene erledigen.

Das geht in Excel nicht. Hier musst du die Ereignisprozeduren einzeln für jedes Steuerelement programmieren.

Gruß Ingolf

NoNet
06.05.2009, 16:18
Hallo Ingolf,

Hier musst du die Ereignisprozeduren einzeln für jedes Steuerelement programmieren.

Das glaube ich nicht ! - Ich denke, das sollte auch über Klassenprogrammierung für Steuerelemente (http://www.online-excel.de/excel/singsel_vba.php?f=57) lösbar sein - allerdings habe ich es selbst nicht getestet !

IngGi
06.05.2009, 17:29
Hallo NoNet,

da hast du natürlich recht. Daran habe ich gar nicht gedacht.

Gruß Ingolf

krixxie
07.05.2009, 08:36
Hallo Zusammen,

danke euch beiden für die Lösung. Ich probier das jetzt mal mit dem Klassenmodul.

Liebe Grüsse