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

Piment

XLDnaute Occasionnel
Patrick, Jean-Marie, bonjour!
Patrick, j'ai testé tes codes, et, si je peux me permettre, 3 remarques :
1°) Dans la combobox, il n'y a pas 2 colonnes. La deuxième colonne où devrait s'afficher l'index n'apparaît plus. J'aurais aimé que le nom de l'agent apparaisse, dans le ComboBox, à côté du numéro à la place de l'index, et que ce dernier soit sélectionné dans la feuille en arrière plan.
2°) Si j'ouvre l'Usf avec le bouton "Ouvrir Menu" et si je saisis un numéro qui n'existe pas, à la sortie du MsgBox, je n'ai plus le Focus dans le ComboBox.
3°) Si je saisis 7,30 le textbox affiche 7,3, j'aimerais qu'il affiche 2 chiffres après la virgule. J'ai tenté de modifier, mais sans succès.
Sans vouloir abuser de ta patience, j'aimerais assez que tu m'accompagnes encore un peu dans cette affaire. Garde à l'esprit que je suis loin d'être du niveau d'un Jean-Marie pour tout comprendre, après quelques explications.
Ta patience risque d'être mise à rude épreuve.
Merci à vous. Bonne journée.
 

Piment

XLDnaute Occasionnel
Salut Jean-Marie,
Et oui. Je suis tenace (question de caractère, je pense.).
Plus sérieusement, le but recherché est de gagner en fluidité, et donc à l'arrivée un gros gain de temps!
J'ai un peu avancé, le problème d'affichage des TexBox semble résolu, j'ai aussi réussi à régler le problème de sélection de la ligne du tableau concernée par le choix effectué dans le ComboBox.
Je mets le fichier en pièce jointe. Si tu pouvais y jeter un œil.
Merci.
 

Pièces jointes

  • Essai V patricktoulon (6).xlsm
    53.2 KB · Affichages: 2

ChTi160

XLDnaute Barbatruc
Re
Tu dis :
le but recherché est de gagner en fluidité, et donc à l'arrivée un gros gain de temps!
Quel est l'intérêt, lorsque tu n'as qu'un combobox élément principal,de à la fois sélectionner la ligne et le Combobox ?
Tu vas me dire parce que lol
J'avais pour limiter les choix possibles a l'ouverture , masqué tout sauf le Combobox,la le gars il avait pas a se tromper y'en avait qu'un ! Lol
Bonne fin de journée
Jean marie
 

Piment

XLDnaute Occasionnel
Re:
l'intérêt est de me permettre de vérifier que je suis sur le bon numéro avec le bon nom qui va avec, avant la validation et ensuite que la saisie s'est bien mise dans la bonne colonne. Les factures comportent parfois des erreurs, là je peux tout vérifier: concordance entre facturation et mon tableau.
 

patricktoulon

XLDnaute Barbatruc
re
bonjour bonjour
que ce passe t il encore ici ?
qu'est ce qui va pas encore ?

perso j'ai l'impression qu'il y en a un qui mange trop de piment ca brûle les neuronnes

@Piment tu es venu demander de l'aide
par conséquent on peut en conclure que tu ne sais pas faire ou tout du moins en partie
@fanch55 @jean-marie et moi @patricktoulon t'avons fait moults propositions correspondant parfaitement à la demande
et on est même allé un peu plus loin

que te faut il de plus
d'autant plus que que tu a declaré comme solution la proposition @fanch55
et il semblerait que tu n'utilise plus cette version
faudrait savoir où tu a mal hein

il y a une différence entre tétu et borné
 

patricktoulon

XLDnaute Barbatruc
re pour avoir le numero et le prenom dans la combo tu n'a qu'une ligne à modifier dans le activate de mon model
VB:
Private Sub UserForm_Activate()
    Dim ctrl, a&, I
    'on prend la colonne des numeros de TEL on lui ajoute une colonne
    tbl = Range("Tableau1[N° Tél]").Resize(, 2).Value
    'sans prenom 'For I = 1 To UBound(tbl): tbl(I, 2) = I: Next    'on met les indexs de ligne du TS dans la colonne 2 de tbl
 
'avec prenom
 For I = 1 To UBound(tbl): tbl(I, 1) = tbl(I, 1) & " - " & tbl(I, 2): tbl(I, 2) = I: Next 'on met les indexs de ligne du TS dans la colonne 2 de tbl

    For I = 2 To 13
        a = a + 1: ReDim Preserve cls(1 To a): Set cls(a).TbX = Me.Frame1.Controls("TextBox" & I): Set cls(a).UF = Me
    Next
End Sub
et c'est tout !!!!
je le redit
quand un code est bien pensé il est facile d'y apporter des modif
et j'ai même apporté une modif sur le focus du textbox dans la frame
en effet si il y a un/des mois ou il n'y a rian puis des suivant ou il y a une somme c'est le premier vide qui sera pris
maintenant c'est le premier vide apres ceux qui sont remplis ou pas

autrement dit
si tout les mois sont vide se sera decembre qui sera pris
sinon sesera le premier vide en partant du TextBox13 vers le textBox1
c'est pas compliqué
 

Pièces jointes

  • Essai V patricktoulon.xlsm
    49.5 KB · Affichages: 2
Dernière édition:

Piment

XLDnaute Occasionnel
Bonjour à tous. Je vous souhaite à tous une bonne et heureuse année.
Pensée particulière à Patrick (patricktoulon) et à Jean-Marie (ChTi160).
Des petits soucis de santé m'ont tenu éloigné de mon fil.
Mais je suis de retour.
Patrick, désolé de ne pas avoir été en mesure de répondre à ton dernier post.
J'ai du retard à rattraper, et je reviens vers vous.
Le temps aussi de faire le point sur où j'en étais.
Merci pour votre aide et pour la patience dont vous faites preuve à mon égard.
Portez-vous bien.
Claude.
 

Discussions similaires

Statistiques des forums

Discussions
315 093
Messages
2 116 132
Membres
112 667
dernier inscrit
foyoman