1.1k Aufrufe
Gefragt in Tabellenkalkulation von
Wie müßte ein Makro aussehen für Excel?

Bei Druck der Taste F2 schreibe in markierte Zelle (Cursor) den Wert "A"
Bei Druck der Taste Shift+F2 schreibe in markierte Zelle (Cursor) den Wert "B"
Bei Druck der Taste StrG+F2 schreibe in markierte Zelle (Cursor) den Wert "C"
Bei Druck der Taste Alt+F2 schreibe in markierte Zelle (Cursor) den Wert "D"

Was ist mit F-Tasten welche durch Excel schon vorbelegt sind?

4 Antworten

0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

ein Beispiel

gruss nighty

einzufuegen alt+f11/projektexplorer/DeineAtbeitsmappe


Private Sub Workbook_Open()
FkeyOff
End Sub


einzufuegen alt+f11/projektexplorer/AllgemeinesModul

Sub FkeyOff()
Application.OnKey "{F1}", "DeinMakroname"
End Sub

Sub FkeyOn()
Application.OnKey "{F1}"
End Sub
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo,

etwas ausführlicher als Nighty bzw. zur Ergänzung ;-):

Du kannst mit ONKEY den Tastendruck abfangen. Siehe hier: KLICK MICH!

Du kannst z.B. beim Öffnen der Arbeitsmappe die Tastureingabe für die F2-Tasten abfangen:

Private Sub Workbook_Open()
Application.OnKey "{F2}", "a_einf"
Application.OnKey "+{F2}", "b_einf"
Application.OnKey "^{F2}", "c_einf"
Application.OnKey "%{F2}", "d_einf"
End Sub


In einem allgemeinen Modul musst du dann die entsprechenden Makros hinterlegen:

Sub a_einf()
ActiveCell = "A"
End Sub


Die normale Tastenbelegung wird damit außer Kraft gesetzt.

Um diese wieder herzustellen, kannst du z.B. das BeforeClose-Ereignis des Workbooks benutzen:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey "{F2}"
Application.OnKey "+{F2}"
Application.OnKey "^{F2}"
Application.OnKey "%{F2}"
End Sub


Gruß

M.O.
0 Punkte
Beantwortet von
Danke für die schnelle Hilfe. Ich habe noch ein paar Probleme, die
Makros zu speichern, da ich Anfänger bin.

Das Private Sub taucht nicht in den Makros auf. Warum? Kann es nicht
starten.
Muss das erste Makro mit dem zweiten verknüpft werden?

Kann man diese Subs

Sub a_einf()
ActiveCell = "A"
End Sub

evtl. für alle Eintragungen zu einem zusammenfassen?
Wenn ich das Makro starte, wird bereits beim Start der Wert
eingetragen. Brauche noch eine kleine Hilfestellung wie man vorgehen
muss.
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo,

bei meinem Beispiel werden das Makro für die "Umleitung" der Funktionstasten beim Öffnen (Private Sub Workbook_Open) bzw. Schließen (Private Sub Workbook_BeforeClose) automatisch ausgeführt. Die Makros gehören in das VBA-Projekt der Arbeitsmappe: So geht's!

Du kannst die Makros aber auch als einfache Subs in ein allgemeines Modul (So geht's!) einfügen und dann per Hand starten. Achte aber darauf, dass du die Subs dann anders benennst.

Um die Tasten in einem Makro zu ändern, benutze den folgen Code (hier wieder im Modul der Arbeitsmappe):

Private Sub Workbook_Open()
Application.OnKey "{F2}", "'Taste ""A""'" 'F2-Taste
Application.OnKey "+{F2}", "'Taste ""B""'" 'UMSCHALT + F2
Application.OnKey "^{F2}", "'Taste ""C""'" 'STRG + F2
Application.OnKey "%{F2}", "'Taste ""D""'" 'ALT + F2
End Sub


Dein Code im allgemeinen Modul zum Einfügen des Textes sieht dann so aus:

Sub Taste(strText As String)

ActiveCell = strText

End Sub


Gruß

M.O.
...