Je rencontre un problème avec la manière dont une zone de liste se comporte sur un formulaire Excel. Procédure pour reproduire le problème:Problème de zone de liste Excel lors de l'utilisation de la propriété verrouillée
- Créer un formulaire utilisateur avec un contrôle ListBox
Utilisez le code ci-dessous avec ce formulaire utilisateur:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Me.ListBox1.Locked = True Me.ListBox1.Locked = False End Sub Private Sub UserForm_Initialize() Dim i As Integer For i = 1 To 10 Me.ListBox1.AddItem i Next i End Sub
Quand la forme est d'abord montré, je suis capable de naviguer dans la zone de liste normalement, en utilisant les touches fléchées et les touches de page. Cependant, après le déclenchement de l'événement de double-clic, toute la navigation au clavier n'a aucun effet, y compris la tabulation vers d'autres contrôles (s'ils se trouvent sur le formulaire). Cliquer sur la liste déroulante semble fonctionner, et le contour du focus est affiché correctement, mais il y a quelque chose qui cloche dans la façon dont le focus est géré après que la listbox soit verrouillée puis déverrouillée. Que se passe-t-il?
Utilisation de l'édition 32 bits d'Office 2013.
pas que ce soit particulièrement utile, mais j'utilise également Office 2013 édition 32 bits et cela fonctionne correctement pour moi dans Excel. – OpiesDad
Vous voulez dire que vous étiez en mesure de sélectionner des éléments dans la zone de liste via le clavier après un double-clic? – Cpu1
@ A.S.H. Où est passée ta réponse? Après avoir essayé votre code, j'ai remarqué que rendre la listbox invisible déplace le focus au contrôle suivant. S'il n'y a aucun contrôle avec la tabulation disponible, le focus "se bloque" à nouveau, rendant la méthode '.SetFocus' de la listbox obligatoire. Ainsi, il semble que la manière la plus fiable d'éviter ce "raccrochage" du clavier est de déplacer le focus sur un autre contrôle, puis de le remettre dans la liste. – Cpu1