IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

setfocus texbox ne fonctionne pas


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 65
    Points : 53
    Points
    53
    Par défaut setfocus texbox ne fonctionne pas
    bonjour,
    j'ai un souci que je n'arrive pas a resoudre

    j'ai un textbox sur un userform
    qui est active par un setfocus a l'ouverture du userform
    je rentre un chiffre a l'interieur
    et appuie sur entre
    une macro suite a l'evenement "after update" recherche le numero correspondant sur une feuille excel
    si il est trouve ......
    et si il est pas trouve
    efface le contenu du textbox
    et re setfocus texbox pour saisir un autre chiffre
    et bien le re setfocus ne fonctionne pas

    il active le bouton suivant

    je me suis dit une macro fonctionnant sur l'event textbox2 ne permet pas de mettre lke focus sur le meme objet
    alors j'en ai fait deux qui fonctionne en alternance
    le premier donne bien le focus au deuxieme
    mais une fois le deuxieme rempli il donne pas le focus au premier

    y a t il un clear sur le focus?
    ou puis je utilisé un autre evenement pour gerer mes macro?

    a+
    Christophe

  2. #2
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 65
    Points : 53
    Points
    53
    Par défaut
    J'ai trouvé çà:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If TextBox2.Text = "" Then Cancel = True
    End Sub
    Cà fonctionne mais le problème j'ai plus aucune action sur les boutons

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Private Sub CommandButton1_Click()
    'bouton retour
    calcul.Hide
    End Sub
     
    Private Sub TextBox1_AfterUpdate()
     
    'macro de comparaison valeur
    '...................
     
    'initialisation et retour sur le textbox
    TextBox1.Value = ""
    'textbox1.setfocus 'ne fonctionnepas
    End Sub
     
    Private Sub UserForm_Activate()
    TextBox1.SetFocus
     
    End Sub
     
    Private Sub UserForm_Click()
     
    End Sub
    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If TextBox1.Text = "" Then Cancel = True
    End Sub
    merci de votre aide

    a+
    Christophe

  3. #3
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 65
    Points : 53
    Points
    53
    Par défaut
    j'ai trouve la solution pour les bouton

    j'ai mis cette propriete pour tous les boutons

    TakeFocusOnClick = False
    et ca fonctionne


    Suite des souci
    j'ai un deuxième textbox et je n'ai pas la main dessus
    comment desactivé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If TextBox1.Text = "" Then Cancel = TrueEnd Sub
    Lorsque je clique sur texbox2

    ...........

    il faudrai que je met un truc

    Cancel = false si texbox2 clicker

    a+
    Christophe

  4. #4
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    Bonjour

    Dans ta procedure update, tu mets textbox1 = "" ce qui provoque le cancel = true de ta procedure exit

    pour regler le probleme, tu peux utiliser une petite astuce : dans un module tu definis une variable booleenne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public sortie as boolean
    dans ta procedure update :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textbox1 = "" : sortie = true
    dans ta procedure exit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if sortie <> true and textbox1 = "" then cancel = true
    sortie = false
    cordialement
    wilfried
    Wilfried

  5. #5
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 65
    Points : 53
    Points
    53
    Par défaut
    merci beaucoup pour ta reponse

    fonctionne pas corectement

    j'ai acces au texbox2 si textbox1 rempli uniquement

    a+
    Christophe

  6. #6
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    re:

    je viens de faire l'essai : ceci fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Sortie As Boolean
    Private Sub TextBox1_Change()
        If TextBox1 = "Maman" Then
            MsgBox "GAGNE"
            Sortie = True
            TextBox1 = ""
            TextBox2.SetFocus ' permet d'envoyer sur textbox 2 sans avoir besoin de faire entrer ou tab
        End If
    End Sub
     
    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
        If Sortie <> True And TextBox = "" Then Cancel = True
        Sortie = False
    End Sub
    Wilfried

  7. #7
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 65
    Points : 53
    Points
    53
    Par défaut
    merci beaucoup pour ton aide, qui m'a bien servi

    j'ai trouvé ( avec ta participation ) une methode qui fonctionne

    je debloque l'acces au textbox2 ou autre seulement pas un appui sur un bouton

    sur ma userform j'ai
    deux bouton
    un label
    et deux textbox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    Private Sub CommandButton1_Click()
    'bouton retour
    calcul.Hide
    End Sub
     
    Private Sub CommandButton2_Click()
    sortie = True
    Label1.Caption = sortie
     
    End Sub
     
    Private Sub TextBox1_AfterUpdate()
    aa = 0
     
    Label1.Caption = sortie
     
     
    'macro de comparaison valeur
    '...................
     
    'initialisation et retour sur le textbox
    TextBox1 = ""
    sortie = False
    Label1.Caption = sortie
    'textbox1.setfocus 'ne fonctionnepas
    End Sub
     
    Private Sub TextBox2_AfterUpdate()
    'macro de comparaison valeur
    '...................
     
    'initialisation et retour sur le textbox
     
    TextBox2.Value = ""
    TextBox1.SetFocus 'ne fonctionnepas
    sortie = False
     
    Label1.Caption = sortie
     
    End Sub
     
     
     
     
     
    Private Sub UserForm_Activate()
    aa = 0
    sortie = False
    Label1.Caption = sortie
    TextBox1.SetFocus
     
    End Sub
     
     
    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If sortie <> True And TextBox1 = "" Then Cancel = True
    'Cancel = True
    'sortie = False
    Label1.Caption = sortie
     
    End Sub
    Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    sortie = False
    Label1.Caption = sortie
    TextBox1.SetFocus
    End Sub
    a+
    Christophe

Discussions similaires

  1. [XL-2010] Setfocus ne fonctionne pas
    Par bickou dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 08/04/2015, 10h46
  2. TextBox.SetFocus ne fonctionne pas
    Par wipMan dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/06/2013, 12h23
  3. [Lazarus] SetFocus ne fonctionne pas
    Par cavaco dans le forum Lazarus
    Réponses: 5
    Dernier message: 10/08/2007, 00h17
  4. [VBA-E] SetFocus sur TextBox dans UserForm_Initialize ne fonctionne pas ?
    Par Jipété dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 27/11/2006, 12h39
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 01h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo