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 sur textbox3 [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 322
    Par défaut SetFocus sur textbox3
    Bonjour à tous.

    J'ai encore besoin d'aide afin de comprendre le résultat de mon code.

    J'ai textbox 3 et 4 qui demandent des nombres. Textbox4 doit être plus grand que textbox3.
    Le résultat de la soustraction de textbox3 - textbox4 s'affiche dans label16

    Si le nombre de textbox4 est supérieur à textbox3, j'ai un msgbox afin de corriger la situation.

    Voici mes codes:
    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
    Private Sub TextBox4_AfterUpdate()
    'si il n'y a rien dans les textbox on ne calcule pas
        If Me.TextBox3.Value = "" Or Me.TextBox4.Value = "" Then Exit Sub
        Me.Label16.Caption = Me.TextBox3.Value - Me.TextBox4.Value
     
        If Me.TextBox3.Value = "" Or Me.TextBox4.Value = "" Then Exit Sub
        Me.Label18.Caption = Round(Me.TextBox4.Value / Me.TextBox3.Value * 100, 2)
    If Label16 < 0 Then
    MsgBox "Le nombre de kilomètres pour des fins d'affaires est suppérieur au total des kilomètres parcourus", vbOKOnly
    TextBox4 = ""
    TextBox3.SetFocus
     
     
    Exit Sub
     
    End If
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
     
    Select Case KeyAscii
        Case 48 To 57, 8
     
        Case Else
            KeyAscii = 0
    End Select
     
    If Len(TextBox4.Text) >= 6 Then KeyAscii = 0
     
    End Sub
    Selon moi, dans le premier code je devrais revenir au textbox3 si label16 < 0 mais non, je passe au textbox suivant.

    Quel est mon erreur ?

    Merci à l'avance

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Es tu sur que ton code entre dans la condition

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 322
    Par défaut Texbox3 et label16
    Oui.

    J'ai copié de mon code au site directement

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    j'ai du mal m'exprimer.

    Est ce que tu es sur que ta condition est vrai afin que ton code entre dans la condition.
    En gros est ce que le msgbox "Le nombre de kilomètres pour des fins d'affaires est suppérieur au total des kilomètres parcourus" apparait?

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 322
    Par défaut textbox3
    Absolument.

    J'ai le msgbox + textbox 4 devient vide.

    Reste à retourner à textbox3

  6. #6
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    essai de suivre ton code en pas a pas, car comme tu mets a blanc la textbox4, tu decroches vers le début de la procedure AfteUpdate et tu sorts des la premiere condition.
    Du coup pas de textbox3.Setfocus

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [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, 11h39
  2. SetFocus sur la valuer d'un sous-formulaire ?
    Par Raphs dans le forum IHM
    Réponses: 2
    Dernier message: 05/12/2005, 18h51
  3. SetFOcus sur un contrôle d'une autre feuille d'un multipage
    Par MacGeol dans le forum VB 6 et antérieur
    Réponses: 29
    Dernier message: 07/09/2005, 09h37
  4. [VB6] SetFocus sur une MSHFlexGrid
    Par jlvalentin dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 13/01/2005, 15h22
  5. [débutant] setfocus sur un TextField
    Par k-reen dans le forum Composants
    Réponses: 2
    Dernier message: 29/06/2004, 16h21

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