kostenloser Webspace werbefrei: lima-city


Makro Start per tastendruck in Userform

lima-cityForumProgrammiersprachenBasic

  1. Autor dieses Themas

    meine-klasse

    meine-klasse hat kostenlosen Webspace.

    Hi ich programmiere schon ein weile mit VBA in Office
    Mein Problem ist das ich per Tastendruck Makros ausführen will aber es in der Userform nicht geht.
    Nicht mit ALT+x sonderen nur mit "x" .

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. v************r

    Versuchs mal mit KeyPress:

    Private Sub Form_KeyPress(KeyAscii As Integer)
            If KeyAscii <> 88 Then      'Prüfen ob Enter gedrückt wurde, sonst ignorieren
                    Exit Sub
            Else
                    'Dein Code
            End If
        End Sub


    88 Entspricht in KeyAscii "X"
  4. Hi,
    also ich hab ein wenig herumprobiert mit meinem Office XP und tatsächlich ist es mir nicht gelungen an ein Key Event eines Forms heranzukommen.
    Hier http://www.mrexcel.com/forum/showthread.php?t=56649 wird zwar empfohlen die TAB Stop Eigenschaft auf false zu setzen, hat bei mir aber nichts gebracht und auch wenn keine Controls auf dem From sind wurde das Key Ereignis nie ausgelöst.
    Google hat mir dann diese Idee gebracht:
    http://www.office-loesung.de/ftopic216405_0_0_asc.php. Habe ich jetzt nicht probiert und ist mit Zugriff auf die Windows API und einem Timer der diese alle z.B. 20 MS abfragt. Weiß also nicht ob es so funktioniert.

    Eine andere Idee hatte ich dann auch noch:
    Auf den Steuerelementen des Forms werden Key Ereignisse ausgelöst, wenn das Steuerelement den Focus hat. Eines der Elemente hat normalerweise immer den Focus, also einfach für jedes Element das Ereignis abfangen und das Makro aufrufen. Hat bei mir funktioniert mit CommandButton und TextField. Mehr habe ich nicht getestet.
    Also im Form dann:
    Private Sub TextBox1_KeyPress(ByVal KeyAscii As _
        MSForms.ReturnInteger)
          Makro1 KeyAscii
    End Sub
    
    Private Sub CommandButton1_KeyPress(ByVal KeyAscii As _
        MSForms.ReturnInteger)
          Makro1 KeyAscii
    End Sub
    und im Makro dann
    Sub Makro1(KeyAscii)
     MsgBox ("Taste " & KeyAscii.Value)
    End Sub
    Kombinationen mit Strg und Alt haben so nicht funktioniert, aber das wolltest du ja auch nicht.
    Ich hoffe es bringt dir was.

    Gruß
    Manni
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!