hi, kann man Buttons in Excel nicht nur per Maus, sondern auch per Tastaturklick auswählbar machen? Indem man z.B. 1 (auf der Tastatur) für den ersten Button und 2 (auf der Tastatur) für den 2. Button auf einem Tabellenblatt auswählen kann?
Hi,
nicht dass ich wüsste. Allerdings könntest du dem Makro, das damit aufgerufen wird, ein Tastaturkürzel mitgeben.
Hallo,
trage bei den Buttons in der jeweiligen Accelerator-Eigenschaft das gewünschte Zeichen ein.
Nun kann man per ALT+ das jeweilige Zeichen den Button aufrufen.
Gruß Uwe
Hallo,
anbei ein Beispiel, wie Du per Tastatur ein Makro starten kannst.
Statt der Msgbox im Beispiel kannst Du einfach den Code Deines Buttons aufrufen.
Falls Du auf unterschiedlichen Blättern unterschiedliche Buttons damit aufrufen willst musst Du halt noch über ActiveSheet.Name prüfen, auf welchem Blatt Dzu bist und den Code entsprechend aufrufen.
LG
Norbert
Code:
Sub tastendruck_setzen()
Application.OnKey "1", "proc_1"
Application.OnKey "2", "proc_2"
Application.OnKey "a", "proc_a"
Application.OnKey "+a", "proc_aG"
Application.OnKey "^a", "proc_ctrl_a"
Application.OnKey "^+a", "proc_ctrl_aG"
End Sub
Sub tastendruck_ruecksetzen()
Application.OnKey "1"
Application.OnKey "2"
Application.OnKey "a"
Application.OnKey "+a"
Application.OnKey "^a"
Application.OnKey "^+a"
End Sub
Sub proc_1()
MsgBox ("Taste 1 gedrückt")
End Sub
Sub proc_2()
MsgBox ("Taste 2 gedrückt")
End Sub
Sub proc_a()
MsgBox ("Taste a gedrückt")
End Sub
Sub proc_aG()
MsgBox ("Taste A gedrückt")
End Sub
Sub proc_ctrl_a()
MsgBox ("Taste ctrl + a gedrückt")
End Sub
Sub proc_ctrl_aG()
MsgBox ("Taste ctrl + A gedrückt")
End Sub
(01.06.2023, 14:01)Kuwer schrieb: [ -> ]trage bei den Buttons in der jeweiligen Accelerator-Eigenschaft das gewünschte Zeichen ein.
Das geht allerdings nur bei ActiveX-Buttons!
Und die machen gerne mal sonstige Probleme (wie z.B. spontan die Größe ändern...)
(01.06.2023, 14:01)Kuwer schrieb: [ -> ]trage bei den Buttons in der jeweiligen Accelerator-Eigenschaft das gewünschte Zeichen ein.
Nun kann man per ALT+ das jeweilige Zeichen den Button aufrufen.
Das geht nicht. Ich habe 2 dort eingetragen, und drücke parallel Alt + 2, dann wird das Makro aber nicht aufgerufen. Das geht doch. Alt + 2 war bereits belegt. Alt + 4 geht. Jedoch ist man dann ja ziemlich beschränkt.
(01.06.2023, 14:03)daNorbert schrieb: [ -> ]Hallo,
Falls Du auf unterschiedlichen Blättern unterschiedliche Buttons damit aufrufen willst musst Du halt noch über ActiveSheet.Name prüfen, auf welchem Blatt Dzu bist und den Code entsprechend aufrufen.
Und wie geht das mit ActiveSheet.Name prüfen?
Ich möchte auf Tabelle1 per Taste 1 das Makro1T1 aufrufen, per Taste 2 das Makro2T1.
Auf Tabelle2 soll per Taste 1 das Makro1T2, per Taste 2 das Makro2T2 aufgerufen werden.
Code:
Application.OnKey "1", "proc_1"
proc_1 ist dann ein Makroname?
Hallo,
z.B. so:
Code:
Sub tastendruck_setzen()
Application.OnKey "1", "proc_1"
Application.OnKey "2", "proc_2"
End Sub
Sub tastendruck_ruecksetzen()
Application.OnKey "1"
Application.OnKey "2"
End Sub
Sub proc_1()
tastendruckhandler ("1")
End Sub
Sub proc_2()
tastendruckhandler ("2")
End Sub
Function tastendruckhandler(taste)
Blatt = ActiveSheet.Name
If Blatt = "Tabelle1" And taste = "1" Then
MsgBox "Starte Makro1T1"
Makro1T1
ElseIf Blatt = "Tabelle1" And taste = "2" Then
MsgBox "Starte Makro2T1"
Makro2T1
ElseIf Blatt = "Tabelle2" And taste = "1" Then
MsgBox "Starte Makro1T2"
Makro1T2
ElseIf Blatt = "Tabelle2" And taste = "2" Then
MsgBox "Starte Makro2T2"
Makro2T2
End If
End Function
Um das ganze zu Aktivieren, bzw. wieder zu deaktivieren am Besten Bei DieseArbeitsmappe noch folgenden Code einfügen (bzw. falls Du dort schon etwas hast in das integrieren.
Code:
Private Sub Workbook_Activate()
tastendruck_setzen
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
tastendruck_ruecksetzen
End Sub
Private Sub Workbook_Deactivate()
tastendruck_ruecksetzen
End Sub
Private Sub Workbook_Open()
tastendruck_setzen
End Sub