[Resolu] Contrôle saisie sur TextBox

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

PrinceCorwin

XLDnaute Occasionnel
Bonjour les amis,

Je souhaiterai faire un contrôle de saisie dans un textbox d'un formulaire, et que ce contrôle fasse "à la façon" d'Excel.
Quand vous commencez à écrire un mot, excel termine le mot s'il à déjà rencontrer un autre mot qui commence pareil. Excel met à jour la fin du mot au fur et à mesure que vous tapez le mot.

Voilà, je souhaiterai faire pareil. Pour facilité la saisie dans les formulaires.

J'ai déjà commencé, mais cela ne va pas tout à fait comme il faut.
Ci-joint le script en question.
VB:
Private Sub Text5_Change()
Set f = Sheets("data")
derligne = f.[A65000].End(xlUp).Row
'la variable temp reçoit la partie gauche du Text5 sur une longueur à la position du curseur !
pos = Me.Text5.SelStart
temp = Left(Me.Text5.Text, pos)
If derligne > 1 Then
    Set o = f.[F:F].Find(what:=temp & "*", LookAt:=xlWhole)
    If Not o Is Nothing Then
            Me.Text5 = o.Value
    End If
End If
Me.Text5.SelStart = pos
Me.Text5.SelText = Mid(Me.Text5.Text, pos)
End Sub

Et là.. ca ne va pas.

Merci à tout ceux qui pourrait me venir en aide.
ZeB
 
Dernière édition:
Re : Contrôle saisie sur TextBox

Bonjour Prince, Gérard, Bonjour le forum,

Essaie comme ça :
Code:
Private test As Boolean 'déclare la variable test

Private Sub Text5_Change()
Dim f As Object 'déclare la variable f
Dim derligne As Integer 'déclare la variable derligne
Dim pos As Byte 'déclare la variable pos
Dim temp As String 'déclare la variable temp


If test = True Then Exit Sub 'si test st vraie, sort de la procédure
Set f = Sheets("data")
derligne = f.[A65000].End(xlUp).Row
'la variable temp reçoit la partie gauche du Text5 sur une longueur à la position du curseur !
pos = Me.Text5.SelStart
temp = Left(Me.Text5.Text, pos)
If derligne > 1 Then
    Set o = f.[F:F].Find(what:=temp & "*", LookAt:=xlWhole)
    If Not o Is Nothing Then
            test = True
            Me.Text5 = o.Value
    End If
End If
test = False
Me.Text5.SelStart = pos
Me.Text5.SelLength = Len(Me.Text5) - pos 'sélectionne la fin du texte
End Sub
Seul incovénient, impossible d'effacer une lettre...
 
Re : Contrôle saisie sur TextBox

Bonjour,
Gérard, Robert,

Merci pour vos réactions et idées.
Je vais transformer mon TextBox en ComboBox. C'est géré en standard. Y a une flèche au bout mais cela ne fait pas si moche que ca !! 🙂

En plus ca évite l'arrachage de cheveux. 😀

Merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
665
Réponses
3
Affichages
796
  • Question Question
Microsoft 365 ListBox TextBox
Réponses
5
Affichages
2 K
Retour