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
Re,
Si tu as tout compris.
C'est moi qui n'as pas mis tous les codes dans le fichier que j'ai joint au départ. Vous m'avez répondu sur la base de ce que j'ai fourni. En voulant minimaliser le fichier, à l'arrivée, il vous manque des données.
Je regarde ce que je peux faire pour remettre un fichier plus près de la réalité.
 

ChTi160

XLDnaute Barbatruc
Re
si tu fais une recherche dans le Combobox avant affichage du Numéro ,il faut inhiber le Change du Combobox et ensuite le remettre via le Tab ou Entrer etc
ou mettre le code dans le exit de ce Combobox ????
Je sais pas' faire ! Lol
Jean marie
 

patricktoulon

XLDnaute Barbatruc
non je suis en train d'examiner
c'est pas ca le problème
problème 1 la frame
problème2 l'events change txtb qui ne fait pas partie de la classe modifier 1(celle de l'userform lui même)
d'autant plus qu'il est declenché 24 fois
puisqu'on efface les douze
et ensuite on injecte les douze mois dans ll'event change du combobox dans les 12 textbox qui sont justement gérés par cet event

problème 3 il selectionne une ligne dans le change de la combobox là c'est le userform qui perd la main

tou a été fait en depit du bons sens

bref je bricole un peu et je vois ce que je peut faire
déja j'ai viré la frame et remplacer par une image vide et verte
 

Piment

XLDnaute Occasionnel
Re,
Effectivement, lorsque l'on saisi les premiers chiffre du N° de téléphone, le comboBox propose au fur et à mesure de la saisie un numéro et le nom associé. La ligne concernée est alors sélectionnée dans le tableau, ce qui me permet de vérifier que je suis sur la bonne ligne correspondant au numéro. Lors de la sortie du comboBox, il recherche le premier Textbox vide de la Frame1, et ce textBox prend le focus. Ceci évite par tabulation d'aller se positionner sur le textBox vide, et on saisi le montant des consommation du mois.
C'est autant de manipulation en moins à faire, cela donne plus de fluidité à la saisie, et évite de ce positionner sur un mois déjà renseigné.
Je remet le fichier en pièce jointe. Fichier dans lequel j'ai supprimé le bouton activant l'ouverture du formulaire. Ce bouton posait problème par rapport à l'Usf. Il vous faut ouvrir le formulaire directement avec la sub. L'usf réagira correctement et cela vous permettra de mieux comprendre comment réagit le formulaire.
Merci à vous.
 

patricktoulon

XLDnaute Barbatruc
re
mais non !!
tu es loin du compte
je l'ai trouver le soucis et en 32 on y est encore plus sensible quand une erreur se produit dans un event de substitution
dis moi un peu comment veux tu que ca marche en formatant dans l'event change
tu t'en sort jamais de ce truc là
et ta source c'est un tableau structuré non ?
a quand tu tu va apprendre à travailler avec
bref perso j'ai mis un coup de hache à ton fichier et j'en ai reconstruit un façon patosh

te reste plus qu'a code le bouton valider
je t'ai deja préparer la range correspondante
 

Pièces jointes

  • piment V patricktoulon.xlsm
    23.8 KB · Affichages: 5

Piment

XLDnaute Occasionnel
Patrick, Jean-Marie,Fanch55, bonjour à vous, bonjour le Forum,
Tout d'abord merci de vous être penché sur mon problème.
Patrick, je travaille effectivement avec un tableau structuré, mais je suis très loin de maîtriser. J'ai beaucoup appris à vos contact, j'arrive à me débrouiller pour bidouiller 2 ou 3 trucs, mais je suis très loin d'être au niveau!
D'ailleurs ce fichier à été réalisé grâce à l'aide de l'un de vous, que je remercie encore. Il se reconnaitra je pense.
Aussi, je sollicite votre bienveillance.
Pour revenir au fichier, j'apprécie beaucoup tes efforts pour me venir en aide, mais, ce que tu propose signifie que je reprenne tous les codes. Cela est juste impossible! Le fichier que j'ai transmis n'est qu'un petit bout du ficher original. Dans le fichier original, j'ai des tableaux de bord, d'autres feuilles de calcul en interaction, des tableaux d'entrée et de sortie de matériel etc...
Je voulais juste affiner et sécuriser la saisie des données: donc à la sortie du comboBox, avoir le focus sur le premier TextBox vide de la Frame.
Pour répondre à la question de Jean-Marie, c'est ce que je pensais: actuellement, a la sortie du combobox, la Frame1 a le Focus: le curseur se trouve sur le TextBox2. Il faudrait alors balayer les texBox jusqu'à la première texBox vide et lui donner le Focus.
Si vous trouvez une solution, je suis preneur.
Merci à vous, bonne journée à tous.
 

ChTi160

XLDnaute Barbatruc
Bonjour Piment
En pièce jointe une adaptation
J'ai optimisé l'utilisation du tableau Structuré "t_BDD" en utilisant ses avantages Lol
Tu regardes, car Utiliser le Focus des contrôles me semble compliqué ! il y a aussi des questions, dont toi seul a les réponses !
Peut-on modifier un Mois Passé ? Y'a-t-il des mois à Zéro ? etc etc
Tu me dis ce que tu en pense ou ce que tu vois comme possibilité !
Bonne Journée
Jean marie
 

Pièces jointes

  • Essai4 Chti160.xlsm
    49.3 KB · Affichages: 4

fanch55

XLDnaute Barbatruc
Dans le classeur joint,
il n'y a plus de combobox1_exit mais un Frame1_enter
le combobox1_change a été modifié pour faire un setfocus sur le frame1.

Le truc bizarre que je n'arrive pas à résoudre :
tout va bien si on quitte le combobox par Tab ou Entrée .
mais si on choisit un élément dans combobox1, c'est systématiquement le 2ème textbox vide qui s'active alors qu'on fait un focus sur le premier .... 🤔

Bon, c'est déjà une avancée ...
 

Pièces jointes

  • Essai4 Fanch55.xlsm
    47 KB · Affichages: 1

patricktoulon

XLDnaute Barbatruc
tenez pour le coup j'ajoute le bouton valider modifier ajout
VB:
Private Sub Valider_Click()
    Dim Rng As Range, I&
    If ComboBox1.ListIndex = -1 Then
        Set Rng = Range("Tableau1").ListObject.ListRows.Add.Range
    Else
        Set Rng = Range("Tableau1").ListObject.ListRows(ComboBox1.ListIndex + 1).Range
    End If
    'le rng c'est la ligne complete
    Rng.Cells(1) = ComboBox1
    Rng.Cells(2) = Textbox1
    For I = 2 To 13
        With Me.Controls("TextBox" & I)
            If Val(.Value) > 0 Then Rng.Cells(I + 1) = CDbl(.Value)
        End With
    Next
    'on remet la listbox a jour
    reliste
    calcul
End Sub
@fanch55 rgarde le mien et essai de poser la question quelle est la démarche pourquoi ces event et pas d'autres etc....
 

patricktoulon

XLDnaute Barbatruc
1701809379009.png
re
j'espère que tu te rend bien compte que ce qui est selectionné dans le code ne fonctionne pas
ET HEUREUSEMENT D AILLEURS!!!
 

ChTi160

XLDnaute Barbatruc
Re
question @patrick
pourquoi lorsque le Combobox1 des Nom et Téléphone est vide tu rajoute une Ligne au Tableau
VB:
If ComboBox1.ListIndex = -1 Then 'icitu testes et si c'est vide
        Set Rng = Range("Tableau1").ListObject.ListRows.Add.Range 'Ici on ajoute une Ligne
    Else
Ne faudrait-il pas mieux Un Exit Sub
Bonne fin de Soirée
Jean marie
 

Discussions similaires

Statistiques des forums

Discussions
315 096
Messages
2 116 173
Membres
112 677
dernier inscrit
Justine11