Microsoft 365 SetFocus sur le premier Texbox vide de la Frame

Piment

XLDnaute Occasionnel
Bonjour à tous, pensée particulière pour Job75.
Je reviens vers vous une fois encore afin de m'aider à solutionner une difficulté que je rencontre.
Je voudrais que dès la sortie( par Tabulation) de la combobox, le focus soit mis sur le premier TextBox vide de la Frame de mon Usf.
Actuellement dès la sortie par Tab ou Entrer, le focus est mis sur le premier TextBox de la Frame.
Ci-joint un fichier minimaliste de mon fichier de base. Le but est de donner plus de fluidité à la saisie.
Par avance merci de votre sollicitude.
 

Pièces jointes

  • Essai4.xlsm
    50.5 KB · Affichages: 15
Solution
Re à tous,
Ca y est!
Les codes fournis par Fanch55, apparemment, fonctionnent après quelques modifications.
J'ai gardé tous mes codes de départ, et j'ai inséré les codes de la Frame de Fanch55.
Têtu comme je suis, je suis resté sur mon idée de départ, tout en restant attentif à ce que vous me proposiez.
C'est-à-dire à la sortie de la comboBox, la Frame avait le Focus (Menu: Ordre de Tabulation). Il fallait donc lui demander de balayer les TextBox jusqu'au premier TexBox vide et de lui faire prendre le Focus.
Apparemment c'est ce que fait les codes de Fanch55.
Je vous mets le fichier en pièces jointes. Si vous pouvez me confirmer, ou si vous pensez qu'à terme il pourrait avoir problème, merci de me faire savoir.

patricktoulon

XLDnaute Barbatruc
re
Attention
je reviens sur la notion d'intuitivité de la combobox
quand tu aura des centaines de numeros l'auto selection en autocomplétion par le INSTR de la valeur tapée ne te suffira plus
car si ils ne sont pas dans l'ordre alpha si tu tape 06 88 par exemple
et que tu en aura 50 de numeros qui commencent comme ca
et que par exemple celui que tu cherche est le dernier
bien tu saura obligé de taper le numero entier
resultat intuitivité =zero+zero=la tête à toto

tu trouvera ici et là dans le forum des exercices bien plus precis et vraiment intuitifs pour les combo

pour le moment ce que tu appelle "intuitivité"(qui n'en est pas une d'ailleurs) de ta combo n'est que la selection de la première occurence

tu reviendra pour ça je le sais ;)
 

patricktoulon

XLDnaute Barbatruc
deja a minima
met ta liste dans l'ordre alpha
comme ça tout les numero qui commenceront pareil seront les un a la suite de l'autre
ensuit au taper tu peux faire un developpe de la combo pour eventuellement sélectionner une des occurences directement
mais pour ca il va te falloir soit faire un tri dans ta feuille
soit si tu ne veux pas toucher l'ordre de la feuille fair une variable tablea 2 colone colonne 1 les numero de tel et colonne 2 les index de lignes
et mettre ca dans ta combo
a la selection tu va chercher l'item (.list(.listindex,1) pour avoir ta ligne correspondante
 

patricktoulon

XLDnaute Barbatruc
LOL toi même
diabolo.gif

bon d'accords je sorts
 

ChTi160

XLDnaute Barbatruc
oui car il faut aussi ajouter les espaces lors de la Saisie sinon ca marche pas Lol
je le gère dans le TextBox ca doit le faire dans le Combobox
on peut ajouter l'auto selection si une seule occurence
ça je fais !
on peut ajouter l'annulation de la touche si pas d'occurence
moi je mets " Aucune correspondance "
Merci Patrick
Bonne fin de Journée
Jean marie
 

patricktoulon

XLDnaute Barbatruc
re
les espaces et 14 caractères max
VB:
'si on tape sur les touches numeriques la liste se reduit aux occurences du même  LEFT que le  VALUE
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    With ComboBox1
        Select Case (KeyCode)
        Case 96 To 105
            Select Case Len(.Value): Case 2, 5, 8, 11: .Value = .Value & " ": End Select
            .Value = .Value & Chr(KeyCode - 48): partListe: KeyCode = 0
            Select Case Len(.Value): Case 2, 5, 8, 11: .Value = .Value & " ": End Select
        Case 8
            If .Value <> "" Then .Value = Left(.Value, Len(.Text) - 1): partListe Else .List = tbl
            KeyCode = 0
        Case 46
            partListe
        End Select
        .Value = Mid(.Value, 1, 14)
    End With
End Sub
 

ChTi160

XLDnaute Barbatruc
Re
je sais pas si c'est dû aux versions excel ,mais j'ai plein de problèmes exemple avec Select Case (KeyCode)
j'ai du mettre Select Case True
aussi avec .Value = .Value & Chr(KeyCode) puis avec .list=.list ainsi qu'avec le .DropDown qui n'affiche rien Lol etc etc
et la procédure ComboBox1_DropButtonClick
J'ai ajouté la gestion des Touches du pavé
VB:
  Select Case True '(KeyCode)
         Case KeyCode >= 48 And KeyCode <= 57 Or KeyCode >= 96 And KeyCode <= 105
J'abandonne pour ce soir Lol
Bonne fin de Soirée.
Jean marie
 

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 017
dernier inscrit
annboi19