Bonjour à tous,
qui n'a pas déjà été frustré par les combos sous VB (au moins jusqu'à la version 6, après j'ai pas testé :)), car on ne peut pas taper quelques lettres pour sélectionner automatiquement le premier élément de la liste qui correspond. Comme sous access quoi !
Bon, ça vaut ce que ça vaut hein, mais comme ça m'a pas mal servi, je me permet de vous le fournir.
J'espère que ça va vous être utile :)
Source / Exemple :
'REMARQUE A SUPPRIMER
'Cette procédure est à appeler sur le KeyUp de la ComboBox, comme suit
If (KeyCode >= vbKey0 And KeyCode <= vbKey9) Or _
(KeyCode >= vbKeyA And KeyCode <= vbKeyZ) Or _
(KeyCode >= vbKeyNumpad0 And KeyCode <= vbKeyNumpad9) Then
AutoSelection Me.cboMaCombo.Text, Me.cboMaCombo
End If
'FIN REMARQUE
Sub AutoSelection(rstrValeurSaisie As String, rctlCombo As ComboBox)
'======================================================
'
' PURP. : Simule les combos de access : on tape les
' premières lettres, et l'appli complète avec
' les données correspondantes dans la liste
'
'======================================================
' Déclaration des variables
'======================================================
Dim strTemp As String
Dim i As Integer
Dim n As Integer
Dim intLongueur As Integer
'======================================================
On Error GoTo AutoSelection_Err
n = rctlCombo.ListCount - 1
intLongueur = Len(rstrValeurSaisie)
With rctlCombo
For i = 0 To n
If StrComp(Left(.List(i), intLongueur), rstrValeurSaisie, vbTextCompare) = 0 Then
'On a trouvé un élément qui commence comme la valeur saisie
'on le sélectionne
.ListIndex = i
'On surligne la fin du mot
.SelStart = intLongueur
.SelLength = Len(.Text) - intLongueur
Exit For
End If
Next i
End With
AutoSelection_End:
Exit Sub
AutoSelection_Err:
msgbox err.Number & " : " & err.description
Resume AutoSelection_End
Resume
End Sub
Conclusion :
Voilou les loulous,
le code peut être simplifié (dans l'appel, on peut ne mettre que la référence à la combo, et traiter sa valeur dans la procédure).
Merci de laisser des commentaires :)
@peluche et bon dev'
DA
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.