Garder le focus sur une TextBox dans VBA.

Eywa Messages postés 12 Date d'inscription mardi 19 janvier 2010 Statut Membre Dernière intervention 26 janvier 2010 - 19 janv. 2010 à 17:43
Eywa Messages postés 12 Date d'inscription mardi 19 janvier 2010 Statut Membre Dernière intervention 26 janvier 2010 - 20 janv. 2010 à 15:25
Bonjour,

Je travaille actuellement sur un projet de gestion de stock à l'aide d'un lecteur code barre.

Le principe est le suivant:

Lorsque je désire sortir un ou plusieurs articles du stock, clic droit n'importe où dans la feuille Excel, sortir du stock. À ce moment là, un UserForm apparaît avec le focus sur la TextBox. Muni du lecteur code barre, je scanne le premier article qui est directerment transféré dans une cellule et s'efface de la TextBox. Cependant, lorsque je désire scanner le deuxième article, au lieu de maintenir le focus sur la TextBox, le focus passe sur le bouton ok et me ferme le UserForm.

Pour maintenir le focus dans la TextBox j'ai essayé la fonction suivante:

[i]Private Sub Barcode_box_Exit(ByVal Cancel As MSForms.ReturnBoolean)


Program.TreatCodeReaded
If Barcode_box.Value "" Then Cancel True

End Sub/i

Le focus reste alors sur la TextBox, je peux donc scanner plusieurs articles, mais lors de la fin du scann, il est impossible de cliquer sur OK ou Annuler,les deux boutons sont bloqués.

Pourriez-vous m'aider à garder le focus puis en fin de scann à valider OK ou Annuler?

Merci de votre aide

24 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
20 janv. 2010 à 15:01
Alors j'abdique !


____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
Eywa Messages postés 12 Date d'inscription mardi 19 janvier 2010 Statut Membre Dernière intervention 26 janvier 2010
20 janv. 2010 à 15:11
Je vais essayer la même chose en supprimant mon UserForm en le rempaçant par une InputBox, j'espère que ça marchera...
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
20 janv. 2010 à 15:12
Dernière idée à essayer :
Scan un barcode prédéfini comme devant être ignoré et :
Private Sub Barcode_box_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  If Barcode_box.Value "" Then Cancel True
End Sub

Sub TreatCodeReaded()

  Dim sCodeReaded As String
  Dim sGlobalCode As String
'If sCodeReaded ton_dodebarre_bidon_prédéfini then
     Maboite1.Barcode_box.Text = " " : exit sub
  end if
'sCodeReaded Maboite1.Barcode_box.Text 
  sGlobalCode = Sheets(sSheetName4CodeBar).Range("GlobalReadedCode").Text 

  If sCodeReaded <> "" Then
    If sGlobalCode <> "" Then
       Range("GlobalReadedCode").Clear
       sGlobalCode = sCodeReaded
    Else
      sGlobalCode = sCodeReaded
    End If 
    Sheets(sSheetName4CodeBar).Range("GlobalReadedCode").FormulaR1C1 = sGlobalCode
    repo = MsgBox("veux-tu continuer à scannber ?", vbYesNo)
    If repo vbYes Then  Maboite1.Barcode_box.Text ""
  End If
End Sub


Si ne marche pas non plus : terminé pour ce qui est de mes tentatives dans cette navigation dans le brouillard. Désolé !
____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
Eywa Messages postés 12 Date d'inscription mardi 19 janvier 2010 Statut Membre Dernière intervention 26 janvier 2010
20 janv. 2010 à 15:25
Ca ne marche toujours pas, le focus est indisponible pour le deuxième scann...

Merci quand même pour ton aide.
0
Rejoignez-nous