Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1888to1892
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tasten F1-F5 belegen statt CommanButton

Tasten F1-F5 belegen statt CommanButton
26.06.2022 15:06:02
Nader
Hallo Zusammen,
folgender Code ist für den Aufruf einer Menümaske vorhanden:
Option Explicit

Private Sub UserForm_Terminate()
Call StopTimer
End Sub

Private Sub CommandButton4_Click()
UserForm3.Show
End Sub

Private Sub CommandButton6_Click()
UF_Dienstprogramme.Show
End Sub

Private Sub WorkSheet_Change(ByVal Target As Range)
Application.EnableEvents = False
ThisWorkbook.RefreshAll
Application.EnableEvents = True
End Sub

Private Sub CommandButton1_Click()
UF_VB_Aufnehmen.Show
End Sub

Private Sub CommandButton2_Click()
UserForm2.Show
End Sub

Private Sub CommandButton5_Click()
Unload UF_Menü
End Sub

Private Sub UserForm_Initialize()
Label2.Caption = Date
Call RunTimer
Application.WindowState = xlMaximized
With Me
.Height = Application.Height
.Width = Application.Width
End With
'Anzeigen ListBox1
Dim lLetzte1  As Long
Application.ScreenUpdating = False
ListBox1.Clear
With Worksheets("Tabelle1")
lLetzte1 = .Cells(Rows.Count, 1).End(xlUp).Row
With Me.ListBox1
.ColumnCount = 11
' ListBox1.Selected(0) = True
.ColumnHeads = False
.Font.Size = 18
ListBox1.RowSource = "Tabelle1!A2:K2" & lLetzte1
'.Height = .ListCount * .Font.Size * 2.5
End With
End With
Application.ScreenUpdating = True
ListBox1.ColumnWidths = "3,4 Cm;0,5 Cm;2,3 Cm;2,5 Cm;4,5 Cm;4,5 Cm;6,0 Cm;6,0 Cm;8,5 Cm;9,0 Cm;1,5 Cm"
'Anzeigen ListBox1
Dim lLetzte2  As Long
Application.ScreenUpdating = False
ListBox2.Clear
With Range("Tabelle1!A1:K1")
With Worksheets("Tabelle1")
lLetzte2 = .Cells(Rows.Count, 1).End(xlUp).Row
With Me.ListBox2
.ColumnCount = 11
' ListBox1.Selected(0) = True
.ColumnHeads = False
.Font.Size = 18
ListBox2.RowSource = "Tabelle1!A1:K1" & lLetzte2
'.Height = .ListCount * .Font.Size * 2.5
End With
End With
Application.ScreenUpdating = True
ListBox2.ColumnWidths = "3,4 Cm;0,5 Cm;2,3 Cm;2,5 Cm;4,5 Cm;4,5 Cm;6,0 Cm;6,0 Cm;8,5 Cm;9,0 Cm;1,5 Cm"
End With
End Sub

Private Sub CommandButton3_Click()
Dim C As Variant
Dim i As Long
If Me.ListBox1.ListCount > 0 Then
If MsgBox("Die markierten Daten werden aus der Activen Vorbestellungsliste gelöscht." & vbLf & _
"Wollen Sie fortfahren?", vbYesNo + vbQuestion, "Achtung!") = vbYes Then
For i = UF_Menü.ListBox1.ListCount - 1 To 0 Step -1
If Me.ListBox1.Selected(i) = True Then
With Sheets("Tabelle1")
.Rows(i + 2).Delete Shift:=xlUp
End With
Set C = Nothing
End If
Next i
End If
End If
End Sub
Nun möchte ich für den Aufruf von Subroutinen nicht wie sonst die Command Buttons benutzen, sondern zum Aufrufen die Funktionstasten (F1 bis F5) belegen.
Ich habe auch schon sehr mit Application.OnKey und andere Varianten experimentiert, leider mit keinem so großen Erfolg.
Wenn mir jemand vielleicht einen Lösungsweg vorschlagen könnte, wäre ich sehr dankbar!
Ich danke euch im Voraus
Viele liebe Grüße
Nader

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tasten F1-F5 belegen statt CommanButton
26.06.2022 15:41:53
Oberschlumpf
Moin,
ich hab auch ne Bsp-Datei
https://www.herber.de/bbs/user/153769.xlsm
In Tabelle Klick auf Button = Userform startet
In Userform Taste F1 drücken...
Anhand des Beispiels für F1 kannst du bei den anderen F-Tasten vorgehen.
Hilfts?
Ciao
Thorsten
AW: Tasten F1-F5 belegen statt CommanButton
26.06.2022 16:03:13
Nepumuk
Hallo Thorsten,
hilft nur so lagen wie nur Labels oder Image-Controls auf dem UserForm sind.
Gruß
Nepumuk
Anzeige
AW: Tasten F1-F5 belegen statt CommanButton
26.06.2022 16:21:34
Oberschlumpf
Moin,
und danke für den Tipp! Mit anderen Controls hab ich tatsächlich nicht getestet.
Aber :-) ...der Fragende meint ja, dass er lieber mit F-Tasten als mit Button arbeiten möchte. (so hatte ich ihn zumindest verstanden)
Und somit kann er die Button löschen, bzw gegen z Bsp Labels tauschen.
Ciao
Thorsten
...ich bin eh neugierig, wann er denn mal Feedback gibt
AW: Tasten F1-F5 belegen statt CommanButton
26.06.2022 16:44:18
Nader
Hallo Ihr Zusammen,
erstmal danke ich euch für eure rasche Hilfe
Tatsächlich bin ich noch dabei die Funktionsweise von F-Tasten in meiner Userform umzusetzen.
Ich melde mich, wenn ich in meiner Menümaske die Buttons durch F-Tasten mit Erfolg ersetzen könnte!
Viele liebe Grüße
Nader
Anzeige
AW: Tasten F1-F5 belegen statt CommanButton
26.06.2022 21:53:17
Nader
Hi Thorsten,
vielen lieben Dank für deine Hilfe.
Dein Vorschlag mit den Funktionstasten hat in meiner Menümaske prima funktioniert.
Ich wünsche dir noch einen schönen Abend noch.
Viele liebe Grüße
Nader
AW: Tasten F1-F5 belegen statt CommanButton
26.06.2022 16:47:04
Daniel
Hi
Du könntest das KeyDown-Event der Userform verwenden.
Das wird ausgelöst, wenn du eine Taste drückst und über KeyCode kannst du abfragen, welche um damit weiteren Code auszuführen.
Man muss nur darauf achten, dass auch die Userform selbst den Focus hat und nicht eine ihrer Steuerelemente
AW: Tasten F1-F5 belegen statt CommanButton
26.06.2022 17:26:49
Nepumuk
Hallo Daniel,

Man muss nur darauf achten, dass auch die Userform selbst den Focus hat und nicht eine ihrer Steuerelemente
Das zeigst du mir wie das gehen soll.
Gruß
Nepumuk
Anzeige
AW: Tasten F1-F5 belegen statt CommanButton
27.06.2022 10:29:54
Daniel
eigentlich ganz einfach:
für alle anklickbaren Steuerelemente die Eigenschaft TabStop auf False setzen und für Commandbuttons zusätzlich die Eigenschaft TakeFocusOnClick.
dann behält die Userform solange den Focus und das KeyDown der Userform funktioniert, bis man ein Eingabesteuerelement (Optionbutton, Check-, List-, Combo-, Textbox) anklickt.
wenn auch solche Elemente bedient werden sollen und danach immer noch eine Tastatursteuerung möglich sein soll, muss man etwas tricksen.
man könnte einen Commandbutton und für diesen das KeyDown anlegen. Dann steuert man über den TabIndex, dass dieser zu beginn den Focus hat und setzt in den Exit-Events der Eingabesteuerelemente den Focus auf diesen Button und vielleicht auch im MouseMove der Userform.
Gruß Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige