Focus impossible

Bonjour,

et merci d'avance à celui ou celle qui me sortira de cette impasse

Je me permet de poster un message ici car après avoir cherché encore et encore, je n'ai trouvé de solution à mon problème

pour faire simple, voici mon besoin : j'ai une userform, sur laquelle il y a plusieurs textbox.

Dans la première, l'utilisateur est censé renseigné le numéro de son badge. Une moulinette recherche une correspondance dans une feuille dédiée du classeur et passe à la textbox suivante si il y a correspondance. Dans le cas ou le numéro de badge n'est pas listé, la textbox se vide et le curseur reste dans cette texte box, dans l'attente d'un nouveau code … et ce jusqu'à ce qu'il y ai correspondance. Je n'arrive pas a rester dans la textbox en cas de code erroné !! le curseur se retrouve toujours dans la textbox suivante

voici mon code:

Private Sub UserNameTextBox_AfterUpdate ()

BadgeNumber = UserForm_Douchage.UserNameTextBox.Value
'Recherche correspondance entre code scanné et Nom Prénom utilisateur du listing
With Sheets("Datas").Range("B31:B43")
Set Rng = .Find(What:=BadgeNumber, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
End With
'Utilisation Résultat de la recherche
If Not Rng Is Nothing Then
BadgeName = Sheets("Datas").Cells(Rng.Row, 1).Value
UserForm_Douchage.UserNameTextBox.Value = BadgeName
Else
UserForm_Douchage.UserNameTextBox.Value = ""
UserForm_Douchage.InfoLabel.Caption = "Utilisateur Inconnu !!"
UserForm_Douchage.UserNameTextBox.SetFocus
Exit Sub
End If

End Sub

Bonjour, sans Fichier difficile de test. Par contre le "Exit sub" à la fin c'est pas utile puisque c'est la dernier commande de la Sub

Je pensais naïvement qu'en donnant le code cela serait suffisant !!

Voici le fichier exemple

13classeur1.xlsm (18.38 Ko)

édit: pour le exitsub, je l'avais fait disparaitre après demande sur le site !! je m'en suis aperçu effectivement, de son inutilité

Bonjour à tous,

à essayer :

déplacer le code de Private Sub UserNameTextBox_AfterUpdate () vers Private Sub UserNameTextBox_Exit(ByVal Cancel As MSForms.ReturnBoolean)

et remplacer l'instruction UserForm_Douchage.UserNameTextBox.SetFocus par Cancel = True

A+

Merci bcp ALGOPLUS ...

cela fonctionne nickel !! Mais du coup j'ai un autre souci:

J'ai 3 textbox successives qui doivent être remplie. La première est le nom de l'utilisateur (plutôt son numéro de badge), la deuxième un nombre de pièce, la troisième un numéros d'emplacement. Et on recommence ... sauf qu'il n'y a pas besoin de refaire le code utilisateur qui reste le même, je voudrais retombé sur la textbox du nombre de pièce. je joint un fichier test

Merci encore pour votre aide

16classeur1.xlsm (24.52 Ko)

Pas trouver de solution autre que de déporter le code de Private Sub ChariotTextBox_Exit(...) dans un bouton :

supprimer le code de Private Sub ChariotTextBox_Exit(...), ajouter un CommandButton sur l'Userform et insérer ce code:

Private Sub CommandButton1_Click() 'adapter le N° à celui du bouton créer
LIGNE = 1 'à adapter pour pouvoir écrire plusieurs lignes

Sheets("Datas").Cells(LIGNE, 5).Value = UserForm_Douchage.UserNameTextBox.Value
Sheets("Datas").Cells(LIGNE, 6).Value = UserForm_Douchage.EtiquetteTextBox.Value
Sheets("Datas").Cells(LIGNE, 7).Value = UserForm_Douchage.ChariotTextBox.Value
EtiquetteTextBox.Value = ""
ChariotTextBox.Value = ""
EtiquetteTextBox.SetFocus

End Sub

Merci bcp pour ton implication.

Ta solution passe par la création d'un bouton qu'il me faut cliquer en fin de saisi !!

Malheureusement ca ne me satisfait pas car, et peut être aurais je du le préciser dés le début, le futur utilisateur de cette feuille Excel sera équipé d'une "scanette" !!

Voila comment je vois les choses: il faut imaginer un pc avec cette userform lancé et l'utilisateur s'éloigne de ce dernier avec une douchette Bluetooth à la main. Il scanne dans un premier temps son badge, si celui-ci est reconnu (listing) le champs suivant (Etiquettetextbox) est sélectionné, il scan alors un code barre sur les pièces à rentrer en stock, si celui-ci est reconnu le champs suivant (Chariottextbox) est sélectionné, il scan alors un code barre sur le chariot où il dépose les pièces et on recommence automatiquement la procédure mais à l'étape 2, le scan du badge étant déjà fait!! l'utilisateur étant assez éloigné du pc, il ne lui est peu possible de valider un bouton à chaque fois ... la scannette ne fait que de la saisi de texte, c'est comme si on tapais chaque lettre et que l'on termine par "Enter", sauf qu'elle le fait en 1 seconde !!

Merci encore pour ton aide

Rechercher des sujets similaires à "focus impossible"