Quand quelqu’un utilise le classeur de Lorenzo, il souhaite que seule la touche F2 soit accessible à l’utilisateur. Il se demande s’il existe un moyen de désactiver toutes les touches de fonction dans Excel, à l’exception de la touche F2?

Il existe un moyen, mais cela doit être fait à l’aide de macros. Plus précisément, vous souhaiterez utiliser la méthode OnKey de l’objet Application. Ce code désactivera toutes les touches de fonction à l’exception de F2:

Private Sub Workbook_Open()

Application.OnKey "{F1}", ""

Application.OnKey "{F3}", ""

Application.OnKey "{F4}", ""

Application.OnKey "{F5}", ""

Application.OnKey "{F6}", ""

Application.OnKey "{F7}", ""

Application.OnKey "{F8}", ""

Application.OnKey "{F9}", ""

Application.OnKey "{F10}", ""

Application.OnKey "{F11}", ""

Application.OnKey "{F12}", ""

End Sub

La macro doit être ajoutée au module ThisWorkbook et elle s’exécutera automatiquement à l’ouverture du classeur.

Si vous le souhaitez, vous pouvez raccourcir un peu la macro:

Private Sub Workbook_Open()

Dim sTemp As String     Dim J As Integer

For J = 1 to 12         If J <> 2 Then             sTemp = "{F" & Trim(Str(J)) & "}"

Application.OnKey sTemp, ""

End If     Next J End Sub

Vous voudrez également vous assurer que lorsque vous fermez le classeur, vous réactivez toutes les touches de fonction. Cette macro, encore une fois, devrait être ajoutée au module ThisWorkbook:

Private Sub Workbook_BeforeClose(CANCEL As Boolean)

Application.OnKey "{F1}"

Application.OnKey "{F3}"

Application.OnKey "{F4}"

Application.OnKey "{F5}"

Application.OnKey "{F6}"

Application.OnKey "{F7}"

Application.OnKey "{F8}"

Application.OnKey "{F9}"

Application.OnKey "{F10}"

Application.OnKey "{F11}"

Application.OnKey "{F12}"

End Sub

Vous pouvez également utiliser une version plus courte du même code:

Private Sub Workbook_BeforeClose(CANCEL As Boolean)

Dim sTemp As String     Dim J As Integer

For J = 1 to 12         If J <> 2 Then             sTemp = "{F" & Trim(Str(J)) & "}"

Application.OnKey sTemp         End If     Next J End Sub

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (13523) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.