Registriert seit: 08.07.2016
Version(en): 2016
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?
Registriert seit: 28.08.2022
Version(en): 365
Hi,
nicht dass ich wüsste. Allerdings könntest du dem Makro, das damit aufgerufen wird, ein Tastaturkürzel mitgeben.
Gruß,
Helmut
Win10 - Office365 / MacOS - Office365
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
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
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• o0Julia0o
Registriert seit: 21.09.2022
Version(en): Mehrere
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
Registriert seit: 28.08.2022
Version(en): 365
01.06.2023, 15:07
(Dieser Beitrag wurde zuletzt bearbeitet: 01.06.2023, 15:10 von HKindler.)
(01.06.2023, 15: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...)
Gruß,
Helmut
Win10 - Office365 / MacOS - Office365
Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:1 Nutzer sagt Danke an HKindler für diesen Beitrag 28
• o0Julia0o
Registriert seit: 08.07.2016
Version(en): 2016
01.06.2023, 15:22
(Dieser Beitrag wurde zuletzt bearbeitet: 01.06.2023, 15:28 von o0Julia0o.)
(01.06.2023, 15: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, 15: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?
Registriert seit: 21.09.2022
Version(en): Mehrere
01.06.2023, 15:36
(Dieser Beitrag wurde zuletzt bearbeitet: 01.06.2023, 15:40 von daNorbert.)
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