Fixer un curseur dans une textbox

Bonjour à tous !

Je planche sur un code, me permettant au travers d'un lecteur de code barre de scanner des produits.

Cependant une fois que j'ai scanné mon produit je souhaiterais que le curseur reste dans la textbox pour scanner le second produit, en bref que je n'ai pas à cliquer dans la textbox pour pouvoir scanner de nouveau.

Voici mon code :

Private Sub txtScan_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

If Len(txtScan) < 11 Then Exit Sub

Dim Valeur_Cherchee As String
    Dim trouve As Range, PlageDeRecherche As Range
    Dim k As Variant
    Set k = ActiveSheet
    Sheets("Liste des données").Select
       If Not txtScan.Value = "" Then
            Dim no_ligne As Integer
            Valeur_Cherchee = txtScan.Value
            Set PlageDeRecherche = Sheets("Liste des données").Columns(13)
            Set trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)
            If trouve Is Nothing Then
                k.Select
                MsgBox "Aucune donnée trouvée"
            Else
          End If
       End If
    k.Select

    Dim r As Range, c As Range
    With Sheets("Liste des données").Range("A1:M1500")
        For Each r In .Rows
            For Each c In r.Cells
                If c = txtScan.Value Then
                    r.Interior.Color = vbGreen
                    Exit For
                End If
            Next c
        Next r
    End With

     txtScan = ""

    txtScan.SetFocus

End Sub

En vous remerciant !

Bonjour,

à tester,

Private Sub txtScan_Change()
 txtScan.SetFocus
End Sub

Bonjour,

Je suis un peu dubitatif avec la soluce de SabV mais comme je n'ai pas de Douchette je ne peux pas vérifier...

Bon de toute façon ton KeyUp me rend tout aussi perplexe :

Moi je tenterai :

Private Sub TextBox1_Exit(ByVal cancel As MSForms.ReturnBoolean)
'IciTonTraitement
    cancel = True
    With TextBox1
        .Text = ""
    End With
End Sub

A+

Bonjour,

Merci pour vos réponses la solution de galopin01 marche impeccable ! Mais celle de sabV ne résout pas mon problème.

Cependant, pensez que si je modifies mon code par la même occasion à chaque fois que scanne un produit celui-ci m'affiche nom et prénom mais que le textbox_Scan s'efface et le curseur reste dans ce textbox ?

Private Sub txtScan_Exit(ByVal cancel As MSForms.ReturnBoolean)

If Len(txtScan) < 11 Then Exit Sub

Dim Valeur_Cherchee As String
    Dim trouve As Range, PlageDeRecherche As Range
    Dim k As Variant
    Set k = ActiveSheet
    Sheets("Liste des données").Select
       If Not txtScan.Value = "" Then
            Dim no_ligne As Integer
            Valeur_Cherchee = txtScan.Value
            Set PlageDeRecherche = Sheets("Liste des données").Columns(13)
            Set trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)
            If trouve Is Nothing Then
                k.Select
                MsgBox "Aucune donnée trouvée"
            Else
                no_ligne = trouve.Row
                txtNom.Value = Cells(no_ligne, 3).Value
                txtPrénom.Value = Cells(no_ligne, 4).Value
                txtNuméro.Value = Cells(no_ligne, 2).Value
            End If
       End If
    k.Select

    Dim r As Range, c As Range
    With Sheets("Liste des données").Range("A1:M1500")
        For Each r In .Rows
            For Each c In r.Cells
                If c = txtScan.Value Then
                    r.Interior.Color = vbGreen
                    Exit For
                End If
            Next c
        Next r

    End With

     cancel = True
        With txtScan
            .Text = ""
        End With

End Sub

Avec ce code les textbox Nom, Prénom et Numéro ne se remplissent pas...

Bonne journée à vous !!!

Pas brillant ce code hein...

Fournir le fichier KIVABIEN avec !

Apparement tu recherches ce code Colonne 13 ?

Pourquoi le recherches-tu une 2ème fois dans la plage "A1:M1500"pour le remettre en vert ? Normalement cela devrait être le même "trouve"que dans la 1ère partie !

Inutile de mettre les 1500 lignes : une dizaine de noms et prénoms bidons et leur code barres suffisent.

Par contre il faut laisser tous les VBA qui concernent cette feuille et le UserForm

A+

Oui pas très brillant...

Mais voici le fichier en question

10kivabien.xlsm (62.98 Ko)

Ton fichier en retour.

A l'avenir utiliser des noms de variable plus courts SVP

VCherche est aussi bien que valeur_cherché

rngRech est aussi bien (et même mieux) que Plage_de_recherche...

A+

19kivabien-vg.xlsm (54.11 Ko)

Merci galopin01 de ta réponse !

Mais j'ai oublié de préciser que quand je surligne, le surlignage doit rester fixe quand je scanne un nouveau produit.

Et je souhaiterai écrire dans la colonne A de la cellule surlignée : "Rendu" au lieu de "port en cours"

YAKA supprimer la ligne indiquée dans le code

remplacer .Select par ="Rendu"

.Cells(no_ligne, 1)= "Rendu"

A+

Rechercher des sujets similaires à "fixer curseur textbox"