Partager via


Définir la correspondance d’entrée dans une zone de liste déroulante

L’exemple suivant utilise les propriétés MatchFound et MatchRequired pour illustrer la correspondance de caractères supplémentaires pour ComboBox. La vérification de la correspondance a lieu dans l’événement Change.

Dans cet exemple, l'utilisateur spécifie si la partie texte d'un contrôle ComboBox doit correspondre à l'un des éléments répertoriés dans ce contrôle ComboBox. L’utilisateur peut spécifier si la correspondance est requise à l’aide d’un contrôle CheckBox , puis taper dans comboBox pour spécifier un élément de sa liste.

Pour utiliser cet exemple, copiez-en le code vers l’éditeur de script d’un formulaire. Pour exécuter le code, vous devez ouvrir le formulaire afin d’activer l’événement Open. Vérifiez que le formulaire contient :

  • un contrôle ComboBox nommé ComboBox1, lié au champ Objet ;

  • un contrôle CheckBox nommé CheckBox1.

Sub CheckBox1_Click() 
 Set ComboBox1 = Item.GetInspector.ModifiedFormPages("P.2").Controls("ComboBox1") 
 Set CheckBox1 = Item.GetInspector.ModifiedFormPages("P.2").Controls("CheckBox1") 
 
 If CheckBox1.Value = True Then 
 ComboBox1.MatchRequired = True 
 MsgBox "To move the focus from the ComboBox, you must match an entry in the list or press ESC." 
 Else 
 ComboBox1.MatchRequired = False 
 MsgBox " To move the focus from the ComboBox, just tab to or click another control. Matching is optional." 
 End If 
End Sub 
 
Sub Item_PropertyChange(byval pname) 
 if pname = "Subject" then 
 Set ComboBox1 = Item.GetInspector.ModifiedFormPages("P.2").Controls("ComboBox1") 
 If ComboBox1.MatchRequired = True Then 
 'MSForms handles this case automatically 
 Else 
 If ComboBox1.MatchFound = True Then 
 MsgBox "Match Found; matching optional." 
 Else 
 MsgBox "Match not Found; matching optional." 
 End If 
 End If 
 end if 
End Sub 
 
Sub Item_Open() 
 Set ComboBox1 = Item.GetInspector.ModifiedFormPages("P.2").Controls("ComboBox1") 
 Set CheckBox1 = Item.GetInspector.ModifiedFormPages("P.2").Controls("CheckBox1") 
 
 For i = 1 To 9 
 ComboBox1.AddItem "Choice " & i 
 Next 
 ComboBox1.AddItem "Chocoholic" 
 
 CheckBox1.Caption = "MatchRequired" 
 CheckBox1.Value = True 
End Sub

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.