sthev
Messages postés12Date d'inscriptionjeudi 26 octobre 2006StatutMembreDernière intervention22 janvier 2008
-
18 janv. 2008 à 07:33
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
22 janv. 2008 à 10:34
Dans un userform, j'ai mis une frame. Dans la frame j'ai mis un textbox. je n'arrive pas à activer le focus du textbox au demarrage de l'userform . Après verification du code saisi dans le textbox (grace à la procedure change) et envoie d'un message d'erreur si le code ne correspond pas a celui attendu (que des chiffres) je n'arrive pas non plus à activer le focus sur le textbox?? Comment faire? voici mon code.
Private Sub TextBox1_Change()
Dim carac As String
Dim Binaire
Dim message
If Len(TextBox1.Value) <= 10 Then
If TextBox1.Value <> "" Then
carac = Mid(TextBox1.Value, Len(TextBox1.Value), 1)
If IsNumeric(carac) Then
Binaire = DecToBin(TextBox1.Value)
Label1.Visible = True
Label1.Caption = Binaire
Else
TextBox1.Value = Mid(TextBox1.Value, 1, Len(TextBox1.Value) - 1)
message = MsgBox("Caractère interdit", vbCritical, "Attention")
End If
End If
Else
TextBox1.Value = Mid(TextBox1.Value, 1, Len(TextBox1.Value) - 1)
message = MsgBox("Limité à 10 chiffres", vbCritical, "Attention")
End IfIf TextBox1.Value "" Then Label1.Visible False
UserForm2.Frame1.TextBox1.SetFocus
End Sub
Private Sub UserForm_Activate()
UserForm2.Frame1.TextBox1.SetFocus
End Sub
Private Sub UserForm_Initialize()
Label1.Visible = False
End Sub
sthev
Messages postés12Date d'inscriptionjeudi 26 octobre 2006StatutMembreDernière intervention22 janvier 2008 19 janv. 2008 à 06:04
Pour JRIVET : la commande est bien marqué dans mon Userform_activate.
Pour MPI : Mon tabindex du frame est bien sur 0 et celui du textbox sur 0 aussi.
Et cela ne marche pas... (Pas de focus sur mon textbox, malgrès la commande de l'userform_activate)
Vous n’avez pas trouvé la réponse que vous recherchez ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 19 janv. 2008 à 14:20
Moi, MPI, je ne vois pas non plus ...
Et comme toi : je ne peux qu'essayer de deviner ...
Deviner quoi ?
- soit qu'il y a d'autres évènements contradictoires (lorsque le contrôle actif perd le focus ou lorsque le contrôle à qui l'on donne le focus devient actif)
- soit que tout ne nous est pas dit ...
sthev
Messages postés12Date d'inscriptionjeudi 26 octobre 2006StatutMembreDernière intervention22 janvier 2008 20 janv. 2008 à 03:13
Le fichier complet est à l'adresse suivante :
http://www.neufgiga.com/index.php?m=c9ae77e8&a=7d397569&share=LNK51534792ac0f39a77 La macro est exécutée directement au demarage ou en cliquant sur le bouton gris E. Mon probleme : je n'arrive pas a mettre le focus sur le textbox1 de l'Userform2 (qui est dans une frame), ce que j'arrive à faire sur le textbox 1 de l'userform3 (qui n'est pas dans une frame), accessible en cliquant sur Co. Je ne comprend pas pourquoi j'y arrive dans un cas (Co) et pas dans l'autre (E).
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 22 janv. 2008 à 10:31
Moi j'en ai aucune idée, si tu utilises le même fichier que tu as mis sur le Net...
Par contre, tu utilises des bouts de code inutiles.
Private Sub TextBox1_Enter()
TextBox1.SetFocus 'Tu viens d'entrer dans le textbox... pourquoi le setfocus ?
End Sub
Même chose dans Textbox1_Change()
S'il change, c'est que tu es en train de l'éditer donc il a le focus...
Dans Workbooks_Open et _Activate, tu mets UserForm2.Show
Utilise seulement un des deux événements.
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 22 janv. 2008 à 10:34
Pour le Workbooks, utilise Open plutôt qu'Activate.
Activate va afficher le UserForm à chaque fois que tu réactives le classeur.
Donc, si tu passes à une autre application et que tu reviennes à ton classeur, le UserForm se réaffichera, ce qui peut devenir ennuyeux...
Et essaie en enlevant tous les Setfocus de ce textbox.
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI