Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro ausführen auf Tastendruck

Forumthread: Makro ausführen auf Tastendruck

Makro ausführen auf Tastendruck
Marco
Hi zusammen,
ich möchte makros ausführen auf den Tasten 1, 2, 3 und vielleicht auch noch auf einer weiteren Taste. Die F-Tasten F1, F2, F3, usw. wären auch o.k.
Das habe ich schon rausgefunden:
sub auto_open
Application.OnKey "1", "uf1"
End Sub

Public Sub uf1()
makro1
End Sub

Geht aber leider nicht. Und warum, hab ich mich gefragt... Habs herausgefunden. Die Befehle werden nur ausgeführt wenn ich auf der Exceloberfläche bin (Sheet) Wenn allerdings meine Maske auf ist, und genau mit dieser möchte ich interagieren, funktioniert das mit dem onkey nicht. Kann mir da einer helfen wie ich da raus komme? Hab auch schon versucht die Maske mit show false zu öffnen. Bringt nix X(
Hilfeeee
Gruß
Marco
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Makro ausführen auf Tastendruck
14.02.2012 22:33:32
Josef

« Gruß Sepp »

Anzeige
AW: Makro ausführen auf Tastendruck
15.02.2012 08:44:26
Marco
Hi Sepp,
danke für den Tipp, aber der Thread hat mich nicht weitergebracht. Der dargestellte Code läuft nicht. Da gibt es schon Syntaxmeldungen. z.B.:
Friend Sub AddToPreview(Parent As UserForm, KeyCode As Integer)
oder
If KeyCode = FireOnThisKeyCode Then RaiseEvent KeyDown(KeyCode, Shift)
Beide rot für Syntaxfehler.
Und wirklich verstehen tu ichs auch nicht. Weiß immer noch nicht genau wo das Problem liegt und wie ich es lösen kann.
Gruß Marco
Anzeige
AW: Makro ausführen auf Tastendruck
15.02.2012 10:50:57
Marco
Hi zusammen,
keiner mehr da, der helfen kann. Diese Funktion ist sehr wichtig für das Programm, um Schnelligkeit zu gewährleisten. Ausserdem arbeiten damit dann CPU Nonknower. Für die isses einfach leichter mit Tasten.
Bitte kann noch einer helfen.
AW: Makro ausführen auf Tastendruck
15.02.2012 11:33:49
marcl
Hi Marco,
schreibe da in ein Modul:
Sub Return_Ein()
Application.OnKey ("{F2}"), "Autofill"
End Sub
Sub Autofill()
MsgBox ("Hallo")
End Sub
Gruß
marcl
Anzeige
AW: Makro ausführen auf Tastendruck
15.02.2012 13:16:54
Marco
Hi,
ich hab doch schon geschrieben, dass das so nicht geht.
AW: Makro ausführen auf Tastendruck
19.02.2012 11:03:18
Tino
Hallo,
in einer Userform müsste man dies so angehen.
Taste F1 bis F3 wird in der Userform überwacht.
https://www.herber.de/bbs/user/78990.xls
Gruß Tino
;
Anzeige
Anzeige

Infobox / Tutorial

Makro auf Tastendruck in Excel ausführen


Schritt-für-Schritt-Anleitung

Um ein Excel Makro auszuführen, wenn du eine bestimmte Taste drückst, kannst du den Application.OnKey Befehl verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke mit der rechten Maustaste auf VBAProject (deine Arbeitsmappe) und wähle Einfügen > Modul.

  3. Füge folgenden Code ein:

    Sub auto_open()
       Application.OnKey "1", "uf1"
       Application.OnKey "2", "uf2"
       Application.OnKey "{F2}", "Autofill"
    End Sub
    
    Public Sub uf1()
       MsgBox "Makro 1 ausgeführt"
    End Sub
    
    Public Sub uf2()
       MsgBox "Makro 2 ausgeführt"
    End Sub
    
    Public Sub Autofill()
       MsgBox "Autofill Makro ausgeführt"
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe auto_open aus, um die Hotkeys zu aktivieren.

Jetzt kannst du die Tasten 1, 2 und F2 drücken, um die entsprechenden Makros auszuführen.


Häufige Fehler und Lösungen

  • Problem: Die Makros werden nicht ausgeführt, wenn das UserForm aktiv ist.

    • Lösung: Du musst sicherstellen, dass die Tastenbefehle innerhalb des UserForms behandelt werden. Verwende die KeyDown-Ereignisprozedur in deinem UserForm.
  • Problem: Syntaxfehler im Code.

    • Lösung: Überprüfe den Code auf korrekte Syntax. Achte darauf, dass alle Subroutinen korrekt deklariert sind und kein Fehler bei der Verwendung von Argumenten vorliegt.

Alternative Methoden

Wenn die Methode mit Application.OnKey nicht funktioniert, kannst du die Tastenüberwachung innerhalb eines UserForms implementieren. Hier ist eine einfache Möglichkeit, dies zu tun:

  1. Erstelle ein UserForm.

  2. Füge folgenden Code in das UserForm ein:

    Private Sub UserForm_KeyDown(KeyCode As MSForms.ReturnInteger, Shift As Integer)
       If KeyCode = vbKeyF1 Then
           MsgBox "F1 wurde gedrückt"
       ElseIf KeyCode = vbKeyF2 Then
           MsgBox "F2 wurde gedrückt"
       End If
    End Sub
  3. Stelle sicher, dass das UserForm den Fokus hat, wenn du die Tasten drückst.


Praktische Beispiele

Hier sind einige praktische Beispiele, die dir helfen, das Konzept besser zu verstehen:

  • Beispiel 1: Verwende Application.OnKey für die Taste 1:

    Sub auto_open()
       Application.OnKey "1", "MakroEins"
    End Sub
    
    Sub MakroEins()
       MsgBox "Das erste Makro wurde ausgeführt!"
    End Sub
  • Beispiel 2: Setze eine F-Taste:

    Sub auto_open()
       Application.OnKey "{F3}", "MakroDrei"
    End Sub
    
    Sub MakroDrei()
       MsgBox "Das dritte Makro läuft jetzt!"
    End Sub

Tipps für Profis

  • Halte deine Makros immer gut dokumentiert, insbesondere wenn du mehrere Hotkeys konfigurierst.
  • Verwende Error Handling in deinen Makros, um unerwartete Fehler abzufangen.
  • Teste deine Hotkeys regelmäßig, um sicherzustellen, dass sie wie gewünscht funktionieren.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Hotkeys gleichzeitig festlegen? Du kannst mehrere Application.OnKey Befehle in der auto_open Subroutine definieren, um verschiedene Tasten für unterschiedliche Makros zu verwenden.

2. Warum funktionieren meine Hotkeys nicht, wenn das UserForm aktiv ist? Die Application.OnKey Methode funktioniert nur, wenn Excel den Fokus hat. Wenn ein UserForm aktiv ist, musst du die Tastenüberwachung innerhalb des UserForms implementieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige