Raccourci clavier de macro devenant inopérant après appel
Bonjour,
Pour commuter de l'interface d'utilisation (bridée, avec feuilles cachées, sans entêtes de ligne ni de colonne, etc.) à l'interface de développement d'une application Excel dont j'ai la charge du développement, j'utilise une macro appelée par un raccourci :
Public Sub InterfaceDéveloppement()
' Appelée par F2
If glInterfaceDéveloppement = False Then
glInterfaceDéveloppement = True
Dim NbFeuilles, Cptr As Integer
Dim Feuille ' Variant pour prendre en compte aussi bien les objets Worksheet que les objets Chart.
For Each Feuille In ActiveWorkbook.Worksheets
With Feuille
.Visible = True
End With
Next Feuille
With ActiveWindow
.DisplayWorkbookTabs = True
.DisplayHeadings = True
.DisplayGridlines = True
.DisplayHorizontalScrollBar = True
.DisplayVerticalScrollBar = True
End With
Else
glInterfaceDéveloppement = True
With ActiveWindow
.DisplayWorkbookTabs = False
.DisplayHeadings = False
.DisplayGridlines = False
.DisplayHorizontalScrollBar = False
.DisplayVerticalScrollBar = False
End With
End If
End SubLe raccourci est quant à lui géré de la façon suivante :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' F2 redevient la touche d'édition
Application.OnKey "{F2}", ""
End Sub
Private Sub Workbook_Open()
' Création raccourci clavier
Application.OnKey "{F2}", "InterfaceDéveloppement"
...
End SubLe problème réside dans le fait qu'un premier appel par F2 affiche bien tous les éléments cachés - la macro est bien exécutée, qu'un deuxième appel fonctionne tout aussi bien - les éléments à cacher redeviennent bien invisibles, mais qu'ensuite, le raccourci ne fonctionne plus du tout jusqu'à ce que je redémarre le classeur (ce qui ôte toute la souplesse recherchée au système de commutation).
Est-ce quelqu'un aurait une idée, une piste ou pourquoi pas la solution ?
Merci d'avance
Finalement, j'ai résolu mon problème que j'avais assimilé à une perte de variables globales lors de l'utilisation du VBA Editor, mais qui était en fait lié à une faute dans mon code ; je clos le sujet.