Curseur focus

Bonjour le forum, je suis dans l'incapacite de garder le focus a un endroit precis apres avoir effacer un chiffre dans un textbox
ex:
imaginez que j'ai comme nombre 123456789
et que j'efface 3 j'aimerais garder le focus apres 2 mais le focus se met jusqu'a l'arriere.

If Me.Txt_quantite.SelStart = 0 Then
Me.Txt_quantite = Left(Me.Txt_quantite, Len(Me.Txt_quantite) - 1)
Else
Me.Txt_quantite = Left(Me.Txt_quantite, Me.Txt_quantite.SelStart - 1) & Mid(Me.Txt_quantite, Me.Txt_quantite.SelStart + 1)

Me.Txt_quantite.SetFocus
End If

2 réponses

  1. Bonjour,

    Voir propriete SelSart de la TextBox
    1. Bonjour j ai tout essayé mais rien ne fonctionne le focus se place toujours a la fin dans le textbox
    2. J’ai essaye en utilisant un textbox pour avoir la position de selstart et de le soustraire a selstart cela fonctionne partiellement et ca bug
      me.txt_quantite.selstart=me.txt_quantite.selstart-textbox1.value 
    3. @JSCH19Bonjour,
      Pas besoin de selstart sur propriete Change, vous gerez comment la saisie?
  2. Bonjour à tous les 2

    si je comprends bien, la suppression dépend de la position initiale du curseur et à la fin ce curseur doit être au même endroit.

    Dans ce cas, ceci devrait fonctionner
    Dim position As Integer
    position = Me.Txt_quantite.SelStart 'on sauvegarde la position initiale
    
    If position = 0 Then
    Me.Txt_quantite = Left(Me.Txt_quantite, Len(Me.Txt_quantite) - 1)
    Else
    Me.Txt_quantite = Left(Me.Txt_quantite, position - 1) & Mid(Me.Txt_quantite, position + 1)
    
    Me.Txt_quantite.SetFocus
    End If
    
    Me.Txt_quantite.SelStart = position 'et on la remet
    


    1. Ta formule fonctionne assez bien,je compliquait et c'etait bien facil,merci
    2. @JSCH19Bonjour vous deux,

      Montrez quand meme comment vous faites la saisie de cette textBox
    3. @f894009Bonjour à vous 2

      Tant mieux si j’ai pu aider. Mais f894009 est bien meilleur que moi en vba, donc répondre à sa question sera certainement utile