Frame textbox et focus

sthev Messages postés 12 Date d'inscription jeudi 26 octobre 2006 Statut Membre Dernière intervention 22 janvier 2008 - 18 janv. 2008 à 07:33
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 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

12 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
18 janv. 2008 à 09:43
Salut,
POur donner le focus ceci devrait suffir NON?

TextBox1.SetFocus

@+: Ju£i?n
Pensez: Réponse acceptée
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
18 janv. 2008 à 22:23
Bonjour, Julien,


celà lui a déjà été dit ...


J'ai l'impression de ce qu'on recommence à la case départ ...



http://www.vbfrance.com/infomsg_FRAME-TEXTBOX-SETFOCUS_1061615.aspx?p=2


 
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
19 janv. 2008 à 02:38
As-tu essayé ce que je t'ai dit sur l'autre thread ?

Avec cette méthode, nul besoin de spécifier quoique ce soit... le focus sera sur le bon contrôle.

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
sthev Messages postés 12 Date d'inscription jeudi 26 octobre 2006 Statut Membre Dernière intervention 22 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)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
19 janv. 2008 à 13:46
Est-ce que la propriété TabStop du Frame et du Textbox est aussi à True ?
Et leur propriété Enabled = True ?

Autrement je ne vois plus trop...(?)

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
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 ...


On va en finir, donc :


Code complet ardemment demandé !
0
sthev Messages postés 12 Date d'inscription jeudi 26 octobre 2006 Statut Membre Dernière intervention 22 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).
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
20 janv. 2008 à 03:47
Bizarre parce qu'ici ça fonctionne bien. Au démarrage ou en cliquant le bouton E...(?)

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
sthev Messages postés 12 Date d'inscription jeudi 26 octobre 2006 Statut Membre Dernière intervention 22 janvier 2008
21 janv. 2008 à 00:45
Bah zut alors ca marche pas chez moi?!!!!!???
0
sthev Messages postés 12 Date d'inscription jeudi 26 octobre 2006 Statut Membre Dernière intervention 22 janvier 2008
22 janv. 2008 à 06:38
Personne n'aurait une idée du pourquoi ça marche chez Mpi  et pas chez moi???
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
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
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
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
0
Rejoignez-nous