Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
J'ai été quelque temps absent et je reviens vous voir avec mon Pb de gestion de Textbox.
J'ai ce code, adapté du code de Luki, il me semble. mon Pb est que lorsque j'appuye sur 'Enter' et que la Textbox est vide, je change, à tord, de textbox.
Merci pour votre modification
Eric D
Effectivement. Pour ma part, pour "voyager" de textbox en textbox, je préfère la méthode Tab, et quand celle-ci est bien définie, bien plus pratique. Je réserve la touche "Entrée" pour remplir son rôle (habitude de "vieux", peut-être?)
Luki,
Ca vaudrait la peine de passer par une classe d'évènements
C'est effectivement une possibilité, mais comme le souligne Luki, j'ai 50 Textbox(s) et un USF déjà construit. Si c'est la seule solution, je me résignerais à reconstruire mon USF ou à apporter ttes les modifs que cela suppose, mais sincèrement, j'aimerais mieux gerer cela avec une proc évenementielle.
Merci pour votre aide à tous et bonne journée.
Eric D
Voici un fichier qui me conviendrai, si ce n'est que lorsque Tbox2, 3 ou 4 n'est pas saisie et que la touche 'Enter' est appuyée, on va en Tbox1 ??? et autre au lieu de rester ds la Tbox comme c'est le cas si on essaye de sortir avec la souris. J'ai les neurones qui disjonctes.
Merci pour votre aide
Eric D
Je ne pensais pas que mon soucis étais si complexe que cela , j'ai plus de nouvelles de bhbh, Luki, Humansoft, où sont ils? ou peut être que vous avez une idée...
Merci pour votre aide.
Eric D
Pour ma part j'ai regardé un peu aujourd'hui, toujours avec l'objectif de simplifier le code... J'ai rencontré des trucs inattendus qui demandent réflexion. Donc pas de solution concluante à ce jour.
Pour le reste, un peu fatigué, pt'êt que les autres aussi? 😉
Bonsoir, Eric D, Luki (merci pour ton MP), Humansoft...
Pas de nouvelles, mais peut-être la solution déjà donnée?
As-tu réfléchi à ma proposition?
Quand je regarde ton code (17 lignes par TextBox), et la mienne (4 par TextBox), je me dis que tu as peut-être raison..... :
Eric, nous te demandions ( surtout je 😛) de nous donner des informations concernant le but à atteindre, les lignes générales de ton projet, pour que nous puissions avoir une approche globale pour t'aider.
Tu semble persister à nous n'en donner que des bribes (c'est peut être secret défense!? 😡) et ceci a des conséquences : nous t'apportons une réponse qui sera inadaptée ou incomplète et devrons recommencer,encore,encore..... selon les quelques infos que tu nous lâcheras.
Le résultat de tout ça est que nous commençons à nous lasser de nous trouver laissés un peu seuls face à nos interrogations.😕
Alors, je fais une dernière tentative pour répondre à ton problème.
J'ai une chance sur 2 qu'elle soit bonne car il manque encore une info :😎
Que doit -il se passer si je remplis les 50 tbox, que je reviens sur le 10ème, et que je l'efface?
Ton code dit que si range AI40 = 1, alors exit sub. ça veut dire que je peux laisser la 10ème tbox vide???
J'imagine plutôt qu' il faut la remplir, c'était l'objet des post précédents.
Voici la solution que je te propose, à coller dans le module du Userform:
Une procédure commune à tous les textbox. S'il fallait en exclure du lot, ce serait enfantin avec ce code.
Code:
Option Explicit
Private Sub UserForm_Initialize()
TextBox1.SetFocus
Range("AI40").Value = ""
End Sub
Sub CommonTboxEnter()
Dim MyCtl As Control
Dim i%
[B] 'If Range("AI40").Value = 1 Then Exit Sub '[COLOR=Red] ligne douteuse !!!![/COLOR][/B]
For i = 1 To 4 ' <<<<<< A ajuster au nombre de textBox !!!!
Set MyCtl = Controls("TextBox" & i)
If MyCtl.Value = "" Then
MyCtl.SetFocus
Exit For
Else
[B]Range("AI40").Value = 1 [COLOR=Red]'ligne douteuse aussi[/COLOR] [/B][COLOR=Red]car jamais remis à zéro sauf au début, pourquoi????[/COLOR]
End If
Next i
End Sub
Private Sub TextBox1_Enter()
CommonTboxEnter
End Sub
Private Sub TextBox2_Enter()
CommonTboxEnter
End Sub
Private Sub TextBox3_Enter()
CommonTboxEnter
End Sub
Private Sub TextBox4_Enter()
CommonTboxEnter
End Sub
Tu es super Luki
C'est exactement ce que je souhaitais, cependant serait-il possible de pouvoir revenir avec la souris ds une Tbox déjà saisie, et après, retourner ds la 1ère Tbox vide lorsque l'on appuie sur 'Enter'.
Désolé pour ces bribes d'informations, elles me viennent malheureusement au fur et à mesure.
Merci encore et bonne journée.
Eric D
J'ai essayé d'adapter ton code extra, pour pouvoir sélectionner une Textbox déjà saisie, mais je retombe innexorablement dans les cas précédents. Pourais m'aider une dernière fois stp.
EricD
Passé encore du temps sans plus de résultat. Les évènementielles se mettent en boucle incontrôlées, ça me semble très compliqué ton affaire! Si je n'avais pas les mains prises par le clavier, je m'arracherais aussi les cheveux !😱
La dernière solution que je t'ai proposée te permet de revenir sur les TextBox une fois que celles-ci sont toutes remplies, avec un code assez léger.
Je ne vois pas comment faire mieux en l'état actuel de mes connaissances.
Regarde aussi du côté des solutions abordées par bhbh, et fais nous part de tes remarques sur ce qu'il te propose, je pense que c'est un minimum...
je pense que tu dois employer le code qui suit
garder le focus dans un TextBox tant qu'il est vide
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.Value = "" Then Cancel = True
End Sub
j'essaye de faire un module de classe,mais je ne trouve pas comment faire pour event exit
pour créer le reste çà va
quelqu'un peut éclairer ma lanterne,svp
à bientôt
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD